1. 程式人生 > 其它 >JS:toFixed( )的除錯 - 瀏覽器思維 點常量 & 點運算子

JS:toFixed( )的除錯 - 瀏覽器思維 點常量 & 點運算子

Number.prototype.toFixed( )

在觀察toFixed()丟失精度問題,和對toFixed()方法重寫的除錯過程時,發現toFixed()對Number的識別有它自己的規則,並找到了解決的方法。

特殊規則

由圖可知:

點( . )運算子本身可作為數字字元如 “ 1.23 ”,也可以作為物件屬性運算子,如Number.toFixed( )。

在12.toString()和12.toFixed()中,點( . )會優先被識別為數字字元,這樣就沒有屬性運算子的點( . )來呼叫toString()和toFixed()方法,這也是報錯的原因。

在瀏覽器眼裡,12.toFixed()等價於(12.)toFixed(),在人類的思維中,可以理解為12toString()

12toFixed(),但是Function命名規則是不能以數字開頭的。這便是 'Uncaught SyntaxError: Invalid or unexpected token ' 報錯的由來:

解決

除了 image -- 1 展示的用變數儲存 Integer的方法外,目前個人已知的兩個方法如下:

(1).toFixed()不做贅述

1..toFixed()的第一個點( . )被識別為常量的一部分,第二個點( . )被識別為屬性運算子作用於物件方法的呼叫。

在瀏覽器思維中,可以理解為(1.).toFixed(),因此不再報錯。

- END -