【发布时间】:2016-02-15 19:00:33
【问题描述】:
即使第一个条件失败,javascript 是否真的会进一步评估为多个 AND 条件语句?
我有如下声明:
if(data.equipment_notifications != "undefined" && data.equipment_notifications.length > 0)
我假设条件在初始条件下会失败,甚至不尝试评估第二个条件,因为如果第一个条件失败(假),那么当涉及到 AND 时,整个条件将始终为假,因此它会跳过一步.
但我得到“无法读取未定义的属性'长度'”,这表明它在第一个失败的标准之后没有跳过。
问题: javascript 是否真的会评估语句的整个标准,即使第一个失败,并且无论评估剩余标准如何,都必然会失败整个语句?
更新:当涉及到 javascript 中的表达式求值时,给出的答案是正确的。此外,我发现我犯了一个愚蠢的错误,在“未定义”的测试中忘记了 typeof
if(typeof data.equipment_notifications != "undefined" && data.equipment_notifications.length > 0)
【问题讨论】:
标签: javascript evaluation