为什么2.valueOf()无效但(2).valueOf()是?

use*_*238 1 javascript

我猜的JavaScript将解析(2).valueOf()new Number(2).valueOf(),但为什么它不是第一个?

根据运算符优先级,分组运算符的优先级应高于成员访问权限https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Operator_Precedence

那么为什么(2)不首先进行评估2而不是被解析为屈服new Number(2)

voi*_*oid 5

因为在2.valueOf.被认为是作为的一部分2,而不是被理解为method accessing.

这就是为什么2..valueOf()有效.

console.log(2..valueOf());
Run Code Online (Sandbox Code Playgroud)