javascript - 为什么我不能在 Number 上使用 toString() 除非我先将它声明为变量?

标签 javascript numbers

<分区>

例如:

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';

最佳答案

您遇到了低级句法问题。数字的标记语法包括小数点后的小数部分的可能性。该语法优先于 . 作为属性引用运算符的重载含义。当解析器看到 5. 时,它希望看到数字的小数部分。非数字被视为错误。

如果你想使用 . 作为属性引用,你必须满足标记语法并将数字封装在一些允许解析器看到 . 你想要的方式:

var str = (5).toString();

在那里,您的数字常量被括在括号中。括号后的 . 可以是属性引用运算符,因此对 .toString() 的调用按预期工作。

关于javascript - 为什么我不能在 Number 上使用 toString() 除非我先将它声明为变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29531350/

相关文章:

java - 为什么 Double.MIN_VALUE 不是负数

javascript - 每 1 秒使用十进制数增加一个随机数的值

php - 找出 2 个数字与某物相加并与某物相乘

Javascript ReactJs 将 JsCss 和 Component 放在外部文件中

javascript - Google Analytics,出站事件跟踪

javascript - 将 onsubit 函数附加到带有参数的表单

python - 修改列表中数字的累积和

javascript - 在 JS 中将 AudioStreamTrack 静音

javascript - TypeError: this.inputMedia.pipe 不是函数

PHP永不重复的随机数