爲何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

相關文章
相關標籤/搜索