在Javascript中if / then转换的基本三元组

时间:2012-05-30 07:02:11

标签: javascript

有人会介意将这行三元代码转换为if / then语句。我理解三元,但在转换为if / then时无法解决语法错误。这是我不得不借用的作业的唯一一行,我想把它变成if / then,这样我就可以对它进行评论并更好地理解它。

原件:

return n == null || isNaN(n) ? 0 : n;

我的尝试:

return n == null || if(isNaN(n)){return 0;}else{return n;}

6 个答案:

答案 0 :(得分:1)

if (n == null || isNaN(n)) {
  return 0;
} else {
  return n;
}

答案 1 :(得分:0)

您必须移动return并为if和else分别设置一个:

if(n == null || isNaN(n)){
    return 0;
}else{
    return n;
}

答案 2 :(得分:0)

if (n == null || isNaN(n))
    return 0;
else 
    return n;

答案 3 :(得分:0)

我认为这是在做:

if (n == null || isNan(n))
   return 0;
else
   return n;

||运算符的precedence运算符高于?运算符。

答案 4 :(得分:0)

您需要在此处应用一些grammatics

其他四个答案提供了正确的源代码,我不想重复它。

答案 5 :(得分:0)

问题是返回必须是它出现的任何一行的第一个语句(根据ECMA规范)。

如果您首先添加括号,则代码更容易翻译(n == null || (isNaN(n) ? 0 : n)给出不同的结果,并且不等同于javascript对未加括号的代码的默认解析)

return (n == null || isNaN(n)) ? 0 : n;

相当于

if (n == null || isNaN(n)) {
    return 0;
} else {
    return n;
}