gpt4 book ai didi

括号的 Javascript 优先级

转载 作者:行者123 更新时间:2023-11-29 16:19:52 28 4
gpt4 key购买 nike

我正在玩 Rhino 并注意到这种奇怪的行为似乎是运算符优先级:

js> {}+{}
NaN
js> ''+{}+{}
[object Object][object Object]
js> ''+({}+{})
[object Object][object Object]

我期望表达式 ''+({}+{})评估为 "NaN" , 自 {}+{}应该首先评估,但这并没有发生。我在 V8 和 Firefox 中对此进行了测试,得到了相同的结果。

在这种情况下,为什么 Javascript 似乎没有遵循括号的标准优先级( 4*(1+2) 仍然是预期的 12 )?

最佳答案

普通 {} 被视为 block 语句,因此您的代码实际上是:

{
//empty block
}


+{}; //Convert object to number

我应该解释一下 plain 的意思:

在语句上下文中表示 {}({}) 是一个对象,因为括号不能包含语句,它们只能包含表达式。

关于括号的 Javascript 优先级,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11390865/

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