我们知道编码风格里面有带不带分号的争议,但是不带分号,确实可能会引起一些无法预计的问题
下面我们总结一下这些情况:
1.立即执行函数
123/* 这里没有被自动插入分号 */ (function(a){ console.log(a); })()
2.数组
var a = [[]]/* 这里没有被自动插入分号 */ [3, 2, 1, 0].forEach(e => console.log(e))
3.数字跟正则
var x = 1, g = {test:()=>0}, b = 1/* 这里没有被自动插入分号 */ /(a)/g.test("abc") console.log(RegExp.$1)
4.函数跟字符串模板
官方称之为“带标签的模板字符串”,就是函数是用来装饰字符串模板的。
var f = function(){ return ""; } var g = f/* 这里没有被自动插入分号 */ `Template`.match(/(a)/); console.log(RegExp.$1)