按自己喜好,可以加可以不加,没什么影响。
但是遇到以 “(”、“[”、“/”、“+”、“-”开始的语句时,不加分号它极有可能和前一条或后一条语句结合在一起解释,导致结果出错。
所以除了上述几个特例要加,其他时候都可以不加。
以“(”开头:
//例1
var a = 9;
(function ab() {
alert(a)
a = 10
})()
//正确输出:9;不加分号:9 is not a function
//例2
a = b
(function() {
})()
javascript会解释成:
1
2
3
a = b(function() {
})();
以“[”开头
1
2
3
4
5
6
a = function() {
}
[1,2,3].forEach(function(item) {
});
javascript会解释成:
1
2
3
4
a = function() {
}[1,2,3].forEach(function(item) {
});
以“/”开头
1
2
a =
'abc'
/[a-z]/.test(a)
期望结果为true,但是javascript会解释成,接着就报错了:
1
a = ‘abc’/[a-z]/.test(a);
以“+”开头
1
2
a = b
+c
javascript会解释成
1
a = b + c;
以“-”开头
1
2
a = b
-c
javascript会解释成
1
a = b - c;
如果在return、break、continue、throw等关键字后面换行,javascript会在换行处填补分号。如:
1
2
3
4
return
{
a: 1
}
会解释成:
1
2
3
4
return
;
{
a: 1
}
如果“++”或“–”运算符作为表达式的后缀时,表达式应该写在同一行,否则也会解释有误
例如:
1
2
3
x
++
y
会解释成:
1
2
x;
++y;
而不是
1
2
x++;
y;
案例转载自: https://www.cnblogs.com/ricklz/p/10342629.html