如何在javascript中计算语句if

如何在javascript中计算语句if,javascript,if-statement,Javascript,If Statement,可能重复: 如果语句在JavaScript中计算为true或false,未定义的,null,“,0,NaN和false都是“假”值,那么语句中的条件如何计算。其他一切都是“真实”的价值观 如果测试一个“假”值,则条件为假。例如: var a = 0; if (a) { // Doesn't happen } else { // Does happen } 如果测试“真实”值,则条件为真: var a = 1; if (a) { // Does happen } e

可能重复:


如果
语句在JavaScript中计算为
true
false
未定义的
null
0
NaN
false
都是“假”值,那么
语句中的条件如何计算。其他一切都是“真实”的价值观

如果测试一个“假”值,则条件为假。例如:

var a = 0;

if (a) {
    // Doesn't happen
}
else {
    // Does happen
}
如果测试“真实”值,则条件为真:

var a = 1;

if (a) {
    // Does happen
}
else {
    // Doesn't happen
}

无论条件表达式的结果是什么,它都是:

  • exprRef
    作为计算
    Expression
    的结果
  • 如果
    ToBoolean(GetValue(exprRef))
    true
    ,则
    返回计算第一条
    语句的结果
  • 否则,
    返回计算第二条
    语句的结果

  • 对于每个数据类型或值。例如,
    undefined
    null
    都被转换为
    false

    请看下面的答案:@Juhana:这解释了等式比较算法,而不是
    if
    语句是如何计算的。我很确定这是OP所问的,他只是没有使用正确的术语。可能是错误的。+1顺便说一句,现在规范有了一个规范的HTML版本:没有es5.github.com那么漂亮,但是也没有大的奇怪的绿色家伙。:-)@T.J.Crowder::D那个绿色的家伙真的很令人不安;)