Number和toString中的坑

在之前的一篇文章 JavaScript中的大数相加 中,在做大数相加时,
突然想到 数字.toString方法 会报错,但是作为函数参数传进来,直接调用 toString 方法却不会报错

 

上网搜了看看,我推测是因为浏览器将 数字.toString 中的 点符号 ,解析为小数点符号
而不是通过 点符号 来调用方法或访问对象属性
因为没有 9527.toString 这样的浮点数,所以报错了
 
那么如何正确调用数值的 toString 呢,应该这么写,可以有以下几种方式
1 20..toString() 等价于 20.0.toString()
2 20 .toString() 因为浮点数中数字和点之间不会有空格,所以解析的时候不会将这个点当作浮点数的点来解析 就等价于 20 调用 toString()
3 (20).toString() 将数字用括号包起来,明确了点和数字的关系,不至于发生混淆
4 20['toString']() 不符合常规写法
推荐第三种写法

 

posted @ 2019-04-04 11:53  青S衫%  阅读(799)  评论(0编辑  收藏  举报