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