声明评估顺序

时间:2018-02-11 19:34:33

标签: javascript

我有这段代码

string[] attachmentFilePath = files.Select(x => $"http://www.google.com/{x}")
                                   .ToArray();

“caught”是我从浏览器中获取的URL。

1)JavaScript会在它反击的第一个错误语句处停止(假设它线性地迭代它们(AreYouHuman - > pfail = 1 - > Episode - > Anime))。

2)或者是否一次评估所有陈述然后决定整件事是真还是假?

假设1)是正确的选项,将最不可能的条件放在第一个位置,理论上会增加我的代码执行速度吗?

关于“重复”标志非经验丰富的程序员(像我一样)不会知道“短路”,可能不是在寻找“&”和“&&”之间的区别,搜索会javascript如何评估“if语句”中的布尔值

2 个答案:

答案 0 :(得分:0)

因为您使用的是 short-circuit logical AND operator &&,是的,当第一个表达式失败时,整个表达式将返回false

但是,如果您使用的是单&,那么 bitwise operator 就不会被短路,并会继续测试其余条件,即使一个是返回false

根据操作顺序测试条件,但禁止任何分组操作符,表达式从左到右进行评估。

答案 1 :(得分:0)

是的,javascript解释器从第一个虚假语句停止,从左到右。如果遇到false值,它会停止测试,因为无论其他值是什么,表达式的计算结果为FALSE