gpt4 book ai didi

javascript - 评估 10 和 (10)

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

在 JavaScript 中,计算 (10) 和 10 有什么区别?

如果我们将匿名函数放在括号内,我们可以像这样直接计算它:

(a => 10)() // returns 10

当我们写入时会发生什么:

(10)

是否先计算括号,然后计算 10,最后返回 10?那么对于 (10),我们有 2 个评估,对于 10,我们有 1 个评估?

最佳答案

如果你看spec ,您会发现关于 grouping operator :

ParenthesizedExpression : ( Expression )

  1. Return the result of evaluating Expression. This may be of type Reference.

NOTE This algorithm does not apply GetValue to the result of evaluating Expression. The principal motivation for this is so that operators such as delete and typeof may be applied to parenthesized expressions.

所以,它真正做的就是计算括号内的表达式。但是,正如明确指出的,它不会调用 GetValue(与 AssignmentOperator 不同)。

换句话说,如果您处于表达式上下文中,表达式(表达式) 是等效的。

So with (10) we have 2 evaluations and with 10, we have 1 evaluation?

是的。

关于javascript - 评估 10 和 (10),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36065438/

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