如何在javascript中评估语句if [重复]

Posted

技术标签:

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

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

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

【问题讨论】:

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

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

    exprRef 成为评估 Expression 的结果。 如果ToBoolean(GetValue(exprRef))true,那么 返回第一个 Statement 的评估结果。 否则, 返回第二个 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

【讨论】:

以上是关于如何在javascript中评估语句if [重复]的主要内容,如果未能解决你的问题,请参考以下文章

如何使情况成为真实的JAVASCRIPT [重复]

javascript IF语句错误[重复]

JavaScript IF 语句错误地评估 TRUE - 为啥?

如何在 freemarker 中评估 if 语句?

在 C++ 中如何评估 if 语句?

JavaScript在if语句中等待异步函数[重复]