根据此post,
42..toFixed( 3 ); // "42.000"
以上代码有效,42..toFixed(3)
有效,因为第一个.
是数字的一部分,第二个.
是属性运算符。
但是,-42..toFixed( 3 );
和-42 .toFixed(3)
的结果在Chrome下为-42
,与正数不同。为什么?我想知道引擎如何处理上述代码?
答案 0 :(得分:2)
(42.).toFixed(3) // Results 42.000
(-42.).toFixed( 3 ); // Results -42.000
使用括号使自己和编程清楚明确你想做什么。
答案 1 :(得分:1)
如果我错了,请纠正我,但我的猜测是.toFixed
来电优先于-
,这导致以下流程:
执行42..toFixed(3),结果为'42 .000'
将-
应用于步骤1的结果,即-42.000',显然,结果为-42