您好,匿名用户

在Javascript中,为什么字符和数字类型没有属性/方法?

0 投票

Douglas说过,在Javascript中除了number, string, booleans和underfined && null,其他的都是对象。

但是number, string也有一条“隐秘链接”(proto)指向Object,这样我们理应可以在这个类型上调用JS内置方法:

    2.toString(); //SyntaxError
    var num = 2;
    console.log(num.toString()); //String

这是JS解释器原理方面的问题吗?
感谢任何有价值的回答!

用户头像 提问 2015年 12月27日 @ 正能量 中士 (1,162 威望)
分享到:

2个回答

0 投票
 
最佳答案

.可以是对象属性操作符,也可以是小数点。
解释器没有足够聪明的区分二者。
2.toString()为例,当解析到2.时解析器直接认为这是浮点数,紧接着.t导致浮点数语法错误,你可以hacking过去。

2..toString(); //小数点后面为空
2.0.toString(); //小数点后为零
(2).toString(); //限制范围,这不是小数
用户头像 回复 2015年 12月28日 @ 坑爹 中士 (1,353 威望)
0 投票
用户头像 回复 9月5日 @ yaoxuemei 上等兵 (106 威望)
提一个问题:

欢迎来到随意问技术百科, 这是一个面向专业开发者的IT问答网站,提供途径助开发者查找IT技术方案,解决程序bug和网站运维难题等。
温馨提示:本网站禁止用户发布与IT技术无关的、粗浅的、毫无意义的或者违法国家法规的等不合理内容,谢谢支持。

欢迎访问随意问技术百科,为了给您提供更好的服务,请及时反馈您的意见。
...