就个人编程习惯而言 由于99%的情况javascript编程不需要自己手动加【;】这个鬼玩意儿

  • 但是目前遇到的两种情况必须加分号(当然如果编辑器里装了格式化插件如:prettire等会在格式化的时候强制给这类情况加上分号)
  1. 立即执行函数
;(function t(){})()
  1. ES6解构赋值的一种情况
;[a, b] = [b, a]

自己的经验是这两种情况不在代码前面加分号会报错

但是通过查找资料发现必须加分号的五中情况如下:
真正会导致上下行解析出问题的 token 有 5 个:括号,方括号,正则开头的斜杠,加号,减号。我还从没见过实际代码中用正则、加号、减号作为行首的情况
所以总结下来就是一句话:一行开头是括号或者方括号的时候加上分号就可以了,其他时候全部不需要。其实即使是这两种情况,在实际代码中也颇为少见。