不带分号可能会引起出错的情况

我们知道编码风格里面有带不带分号的争议,但是不带分号,确实可能会引起一些无法预计的问题

下面我们总结一下这些情况:

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)

 

posted @ 2019-07-16 17:28  张啊咩  阅读(253)  评论(0编辑  收藏  举报