为什么123.toString()不行,而123..toString()却可以?

有点经验的开发者,通过观察123.toString()执行的报错提示就能知道结果:Uncaught SyntaxError: Invalid or unexpected token 非法语句,123是个NumberNumer本身具有toString方法,即使没有,错误应该是:Uncaught TypeError: toString is not a function 这样才对,所以错误不是出在类型转换上。

那么为什么123..toString()就可以呢?

原来 JavaScript采用 IEEE 754 的规范 双精度数字,JavaScript 中只有一种数字类型:基于 IEEE 754 标准的双精度 。它并没有为整数给出一种特定的类型,所以所有的数字都是小数。

123.toString()等价于123.0toString(),这样的语句当然行不通。

这也更合理解释了为什么123..toString()123 .toString()(123).toString()能够得到正确的返回值。

你可能感兴趣的:(为什么123.toString()不行,而123..toString()却可以?)