gpt4 book ai didi

Javascript - 条件语句的检查顺序是什么

转载 作者:行者123 更新时间:2023-12-03 07:18:41 25 4
gpt4 key购买 nike

我很想知道 Javascript 中的条件语句。我有两个例子如下:

var myObj = {};
console.log(myObj.pro != null && myObj.pro.val != null ? 0 : 1);
console.log(myObj.pro.val != null && myObj.pro != null ? 0 : 1);

第二行将打印一个值,但第三行将引发异常。条件是从左到右检查的吗?当我们在同一行中有很多条件运算符如 OR、NOT、() 和 AND 时,它是如何检查的。首先检查哪一个?如果我误解了,请纠正我。

更新:我添加了更复杂的示例:

var !(!A || B && C && D) ? 0 : 1;

最佳答案

对于第二行 console.log(myObj.pro != null && myObj.pro.val != null ? 0 : 1);, myObj.pro计算结果为 undefined,然后将其与 null 进行比较并返回 false。我们知道,在 AND 比较中,当左侧的计算结果为 false 时,Javascript 会忽略 AND 的右侧。这种合理的行为可防止解释器遇到异常绑定(bind)的右侧代码,该代码本质上是 undefined.val

第三行继续执行并评估 undefined.val,它抛出异常并停止解释。

如果您有兴趣了解优先级,请查看 this MSDN table

关于Javascript - 条件语句的检查顺序是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53758724/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com