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

Javascript 为什么可以对整型变量调用toString(),而不能对文本数调用?,javascript,Javascript,这是怎么回事: 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).toStri

这是怎么回事:

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"
在前两种情况下,第一个
被解析为浮点。第二个只能作为成员运算符进行分析,因为数字文本只能包含一个浮点

这由规范中的显示出来。

您可以这样做-(1).toString()是js的一种语法规则,与css相同,例如,您的id/classname不能以数字开头