为了账号安全,请及时绑定邮箱和手机立即绑定

关于一个分号的问题,为什么没有分号就报错了呢?

关于一个分号的问题,为什么没有分号就报错了呢?

汪汪一只猫 2018-11-21 15:14:36
输出2当把那个分号去掉,报错求问那个分号是起了什么作用?为什么去掉会报错呢?
查看完整描述

1 回答

?
茅侃侃

TA贡献1842条经验 获得超21个赞

不是分号的问题,
而是如果没有;号的阻断, 解释器直接把两条语句合并成:

var xx = function(){}[1,2,3].aa(22);

在使用已()和[]为开头的语句时, 要尤其注意, 因为这两个操作符会优先和前面的表达式进行组合, ;号不能省

在某些的;号则不是必须的, 比如;

var a = 1, b=2a++
b++

这并不会报错

由于 js 并没有明确的对这样的行为做出解释, 而且页容易混乱, 所以推荐的做法一般都是:
不管需不需要;号隔断, 你最好在后尾都加上一句, 除非你明确知道(想要)导致的结果.
这种做法称作最佳实践


查看完整回答
反对 回复 2018-12-09
  • 1 回答
  • 0 关注
  • 916 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信