关于Number.toString()的问题
因为遇到过这样的问题没有思考出结果,去查阅了相关资料以及阅读了别人
的博客,在这里做一个记录。
问题是这样的:
请写出下面语句的输出。
(1)3.toString()
(2)3..toString()
(3)3...toString()
明明在哪里见过这样的问题,却始终想不起来。
其实问题涉及到Number和toString()方法。
1.对于第一个输出,答案是:invalid or unexpected token
解析:对于Number类型的数据,".“会被解释为小数点,而”."又是用来调用方法的。也就是说,对于一行代码,解释器不知道将这个“.”解释为小数点,还是解释为方法调用,于是提示错误。
2.答案:3
解析:这种写法等价于3.0.toString(),也自然能够得到正确的输出
3.答案:unexpected token ‘.’
解析:既然第二种写法正确,第三种写法多出来的一个“.”无法被解释器解释,自然错误。
正确的写法:
(1) 3..toString() //等价3.0.toString
(2) 3 .toString() //因为浮点数的数字和点和中间多了一个空格,也就不会将点解释为方法调用
(3) (3).toString() //将数字用括号包起来,明确了点和数字的关系
(4) 3['toString']() //不建议,很别扭
参考:
https://blog.csdn.net/cominglately/article/details/78106370