在我们写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')
})()
通过上面的案例,抛开省略分号在代码中能够节省的代码量而言,为了代码的稳定(防止解析出错),建议还是加上分号断句。