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 ' 报错的由来:
安排的不明不白
除了图片-1所展示的用变量存储 Integer 的方法外,目前已知的两个方法:
(1).toFixed() 不做赘述
1..toFixed() 的第一个点( . )被识别为常量的一部分,第二个点( . )被识别为属性运算符作用于对象方法的调用。
在浏览器思维中,可以理解为 (1.).toFixed() ,因此不再报错。
- END -
标签:12,浏览器,Number,JS,运算符,报错,toFixed 来源: https://www.cnblogs.com/97z4moon/p/14972997.html