gpt4 book ai didi

javascript - JS && 优先级与 ===

转载 作者:行者123 更新时间:2023-11-30 12:08:01 24 4
gpt4 key购买 nike

根据javascript documentation , === 运算符的优先级高于 && 运算符。因此,我期望像

这样的表达式

false && undefined.foo() === undefined.foo()

在评估任一 undefined.foo() 调用时抛出错误。但是,正如我在 node、chrome 和 firefox 中尝试过的那样,js 引擎总是短路并返回 false 例如

> false && undefined.foo() === undefined.foo()
false

&& 短路是否应该在 === 操作数被求值后启动?

最佳答案

更高的优先级仅意味着两个操作数 undefined.foo()&& 的操作数之前首先与 === 运算符相关联> 决定了。它不规定执行顺序,仍然是从左到右。

运算符优先级仅决定表达式是否被评估为

(false && undefined.foo()) === undefined.foo()

false && (undefined.foo() === undefined.foo())

无论哪种情况,false 仍然是第一个被评估的东西;尽管如果 && 具有更高的优先级(第一个括号示例),那么第二个 undefined 表达式也总是被评估。

关于javascript - JS && 优先级与 ===,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34632773/

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