JavaScript加分号和不加分号有什么区别?

296 阅读1分钟

在我们写JavaScript代码的时候,分号代表一条语句,但是我们经常也能看到不写分号的代码。这两者有什么区别呢?

  • 我们看看下面的代码
var x = 1

(function(){
    console.log('haha')
})()

//Uncaught TypeError: 1 is not a function

很奇怪,这种错误,很少能够看出问题所在,实际上,在运行的时候上面的代码会被优化成

var x = 1(function(){console.log('haha')})()

因此立即执行函数的()会被赋在1上,这是一个调用函数的语法,所以会报错,解决这个问题的方法就是加分号

var x = 1;

(function(){
    console.log('haha')
})()

通过上面的案例,抛开省略分号在代码中能够节省的代码量而言,为了代码的稳定(防止解析出错),建议还是加上分号断句。