为什么要在数字上加上括号才能在其上调用toFixed?

时间:2018-11-27 16:31:03

标签: javascript

例如,

1.toFixed(2) // Uncaught SyntaxError: Invalid or unexpected token

(1).toFixed(2) // "1.00"

let num = 1
num.toFixed(2) // "1.00"

同时,您不必在字符串周围加上括号即可在其上调用方法

'yo'.repeat(3) // "yoyoyo"

这里的规则是什么?它还适用于哪些地方?猜测是否与将点误解为数字的小数点有关?

3 个答案:

答案 0 :(得分:3)

因为解释器正在寻找更多的数字(十进制值),而不是关键字或方法。

答案 1 :(得分:1)

正如其他人所说,JavaScript正在寻找小数点后的更多数字。它认为您正在尝试输入1.2之类的浮点数,而不是那里的t,不是数字。

有趣的是,您可以在不使用括号的情况下执行此操作,也可以使用2个小数点来使其可变。像这样:1..toFixed(2)。我想您也可以根据需要1.0.toFixed(2)

答案 2 :(得分:1)

  • 使用变量时,JavaScript确信您不会在该点之后添加小数。
  • 当不使用变量时,JavaScript认为您要在该点后添加小数。
  • 在用括号括起数字时,您说数字已完成,一切都很好。
  • 如果您不喜欢括号,也可以使用..。第一个用于小数,第二个用于调用该方法。

let num = 1;
console.log(num.toFixed(2));

// console.log(1.toFixed(2)); // ERROR

console.log((1).toFixed(2));

console.log(1..toFixed(2));