'42 ..toFixed(3)'和'-42..toFixed(3)'之间的区别?

时间:2015-12-25 10:01:19

标签: javascript

根据此post

 42..toFixed( 3 );   // "42.000"

以上代码有效,42..toFixed(3)有效,因为第一个.是数字的一部分,第二个.是属性运算符。

但是,-42..toFixed( 3 );-42 .toFixed(3)的结果在Chrome下为-42,与正数不同。为什么?我想知道引擎如何处理上述代码?

2 个答案:

答案 0 :(得分:2)

(42.).toFixed(3) // Results 42.000
(-42.).toFixed( 3 ); // Results -42.000

使用括号使自己和编程清楚明确你想做什么。

答案 1 :(得分:1)

如果我错了,请纠正我,但我的猜测是.toFixed来电优先于-,这导致以下流程:

  1. 执行42..toFixed(3),结果为'42 .000'

  2. -应用于步骤1的结果,即-42.000',显然,结果为-42