为什么可以对整数变量调用toString(),而不能对文字数字调用

Why can you call toString() on an integer variable but not a literal number?

本文关键字:调用 数字 不能 文字 toString 整数 变量 为什么      更新时间:2023-09-26

这是怎么回事:

var num = 1;
console.log(num.toString()); // "1"

但这不是吗?

console.log(1.toString()); // SyntaxError: Unexpected token ILLEGAL

因为语法要求数字后面的.被解析为该数字的一部分,例如1.5。如果您想将.用作数字文字上的成员运算符,则需要消除其歧义:

1..toString();  // "1"
1.0.toString(); // "1"
(1).toString(); // "1"

在前两种情况下,第一个.被解析为浮点。第二个只能作为成员运算符解析,因为数字文字只能包含一个浮点。

这通过规范中的NumericLiteral语法来显示。