JavaScript-JS: 1.toString OR (1).toString

JavaScript-JS: 1.toString OR (1).toString

清晨说ぺ晚安 发布于 2017-02-10 字数 159 浏览 1053 回复 2

1.toString();
(1).toString();
-1 .toString();

请问这几个的区别?
实际执行情况为,第一条浏览器抛错,后两条正确执行,这是为什么?

如果你对这篇文章有疑问,欢迎到本站 社区 发帖提问或使用手Q扫描下方二维码加群参与讨论,获取更多帮助。

扫码加入群聊

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

甜柠檬 2017-07-23 2 楼

第一个:
1.toString() ,语法错误,这里由于 . 的作用为 小数点,将整体认为是一个小数,
可以试试 1.a , 1.b 同样有错误。
使用 1.0.toString() 可以规避这种错误

第二个:
(1).toString(); 显然避开了上边的错误,将整个表达式分成了 1 toString() 两部分
同样的使用 1 .toString() 可以规避这错误(加空格)。

第三个:

-1 .toString(); 这里有个优先级问题, 实际为 :-(1 .toString()); 那么进一步理解为:
0 - "1" = -1 (number) 这里有个隐式的类型转换。

清晨说ぺ晚安 2017-05-13 1 楼

1.toString() 1是具体的值,显然是错误的。
(1).toString() 用()把1转成字符串"1",所以是正确的,()是转字符串的操作。
-1 .toString()这个就很诡异了,1 .toString()返回的是字符串"1",-1 .toString()返回的是数值-1,这个不是很明白。