【问题标题】:How the statement if is evaluated in javascript [duplicate]如何在javascript中评估语句if [重复]
【发布时间】:2013-01-10 06:48:27
【问题描述】:

可能重复:
Is there a standard function to check for null, undefined, or blank variables in JavaScript?

if 语句中的条件如何在 JavaScript 中评估为 truefalse

【问题讨论】:

  • 看到这个答案:stackoverflow.com/a/665056/502381
  • @Juhana:这解释了相等比较算法,而不是如何评估 if 语句。
  • 我很确定这是 OP 的要求,他只是没有使用正确的术语。不过可能是错的。

标签: javascript if-statement


【解决方案1】:

无论条件表达式的结果是什么,都是converted to a Boolean by ToBoolean

  1. exprRef 成为评估 Expression 的结果。
  2. 如果ToBoolean(GetValue(exprRef))true,那么
    返回第一个 Statement 的评估结果。
  3. 否则,
    返回第二个 Statement 的评估结果。

对于每个数据类型或值,the conversion rules to a Boolean are clearly defined。因此,例如,undefinednull 都转换为 false

【讨论】:

  • +1 顺便说一句,现在有规范的 HTML 版本:ecma-international.org/ecma-262/5.1 不如 es5.github.com 漂亮,但也没有那个奇怪的绿色大家伙。 :-)
  • @T.J.Crowder: :D 绿人真的很烦人 ;)
【解决方案2】:

undefinednull""0NaNfalse 都是“假”值。其他一切都是“真实”的价值。

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

var a = 0;

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

如果你测试一个“真”值,则条件为真:

var a = 1;

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-12-01
    • 2013-11-04
    • 1970-01-01
    • 2019-02-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多