为何123.toString()不行,而123..toString()却能够?

今天偶然在百度知道上发现这个问题,提问时间是2016年,竟然到了2019也没有一个正确的回复,技术方向还真不必定就"百度如下,你就知道"。token

其实稍微有点经验的开发者,经过观察123.toString()执行的报错提示就能知道结果:Uncaught SyntaxError: Invalid or unexpected token 非法语句,123是个Number,Numer自己具备toString方法,即便没有,错误应该是:Uncaught TypeError: toString is not a function 这样才对,因此错误不是出在类型转换上。ip

  • 那么为何 123..toString()就能够呢?

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

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

这也更合理解释了为何123..toString()、123 .toString()、(123).toString()可以获得正确的返回值。io

相关文章
相关标签/搜索