ECMAScript语句以分号(;)结尾。
省略分号的情况下,解析器自己会推测应该在哪里插入分号,从而确定语句结尾。比如
const add = (x,y) => x+y
const sum = add(1,2)
console.log(sum)
以上语句都省略了分号,依旧能够正确执行。
但“常在河边走哪有不湿鞋”呀,比如,在使用立即执行表达式的时候
const text = "hello world"
(function(text){
console.log(text);
})(text);
一执行,就有红彤彤的报错:Uncaught TypeError: "hello world" is not a function。
由于解析器无法确定语句结尾,干脆就把它们都合并成一句了。
所以,虽然语句后面加分号不是必需的,但最好还是加上吧。