由于js中又一个自动插入分号的机制,所以实际我们在写代码的过程中很少会关注分号的问题;现在的趋势基本也就是不添加分号;甚至eslint的标准检查模式中也禁止添加分号。
不过这里还是有一个些不常见的小坑
如果一个语句的开头以“括号,方括号,正则开头的斜杠,加号,减号”。实际使用中最常遇到的应该是括号开头,比如js中的立即执行函数;但是随着es6的使用范围越来约普遍,立即执行函数这种骇客机制也很少用到了。
下面举个例子:
var a = 'hello'
// 这里会报错
(function() {
console.log(arguments)
})(1,2,3)
// 这样写就不会报错
;(function() {
console.log(arguments)
})(1,2,3)
复制代码
另外如果立即执行函数处于js文件的开头也不会报错
(function() {
console.log(arguments)
})(1,2,3)
var a = 'hello'
复制代码