例如:
var num = 5;
num.toString(2); // Returns the binary representation 101
但如果我这样做
5.toString(2); // Error
我认为第二个例子应该可以工作,因为它似乎很好用字符串。例如:
// BOTH WORK
var str = 'hi';
str.toUpperCase(); // Returns 'HI';
'hi'.toUpperCase(); // Returns 'HI';
答案 0 :(得分:2)
您遇到了一个低级别的语法问题。数字的标记语法包括小数点后面的小数部分的可能性。该语法优先于.
作为属性引用运算符的重载含义。当解析器看到5.
时,它希望看到该数字的小数部分。非数字被视为错误。
如果要使用.
作为属性引用,则必须满足标记语法并将数字包含在某个构造中,以允许解析器以您希望的方式查看.
:
var str = (5).toString();
在那里,你的数字常量包含在括号中。括号后面的.
只能是属性引用运算符,因此对.toString()
的调用按预期工作。