JS:toFixed( )的调试 - 浏览器思维 点常量 & 点运算符

Number.prototype.toFixed( )

在观察toFixed()丢失精度问题,和对toFixed()方法重写的调试过程时,发现toFixed()对Number的识别有它自己的规则,并找到了解决的方法。

特殊规则

JS:toFixed( )的调试 - 浏览器思维 点常量 & 点运算符

 由图可知:

点( . )运算符本身可作为数字字符如 “ 1.23 ”,也可以作为对象属性运算符,如Number.toFixed( )。

在12.toString()和12.toFixed()中,点( . )会优先被识别为数字字符,这样就没有属性运算符的点( . )来调用toString()和toFixed()方法,这也是报错的原因。

在浏览器眼里,12.toFixed()等价于(12.)toFixed(),在人类的思维中,可以理解为 12toString() 和 12toFixed() ,但是 Function命名规则是不能以数字开头的 。这便是  ' Uncaught SyntaxError: Invalid or unexpected token '  报错的由来:

JS:toFixed( )的调试 - 浏览器思维 点常量 & 点运算符

 安排的不明不白

除了图片-1所展示的用变量存储 Integer 的方法外,目前已知的两个方法:

JS:toFixed( )的调试 - 浏览器思维 点常量 & 点运算符

(1).toFixed() 不做赘述

1..toFixed() 的第一个点( . )被识别为常量的一部分,第二个点( . )被识别为属性运算符作用于对象方法的调用。

在浏览器思维中,可以理解为 (1.).toFixed() ,因此不再报错。

- END -

上一篇:fetch文件流处理


下一篇:input file 上传图片显示上传的文件