有点经验的开发者,通过观察123.toString()执行的报错提示就能知道结果:Uncaught SyntaxError: Invalid or unexpected token 非法语句,123是个Number,Numer本身具有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()能够得到正确的返回值。
