那些容易忽略的事(2) - 可选的末尾分号
一般情况下,我们都不会写末尾的分号,因为在javascript中会自动补全分号,但是补全是有条件的。补全规则是:当前语句无法与下一句合并解析时才添加分号
1、第二行以"("、"["、"+"、"-"、"/"开头时,很有可能会被解析到一起,如:
var a=1+2 (a).toString() 解析结果:var a=1+2(a).toString()
//TypeError: 2 is not a function
规则如此也有例外:
1、return、break、continue语句不能分行写
var a=function(){ return true } 解析成: var a=function(){ return; true; } a()---//返回undefinde
ps:
函数没有return值或者return参数为空时,函数执行函数体中的语句,并返回undefinde
break:跳出循环体,结束循环
continue:跳出当前循环,进入下一次循环。
2、++或--
var a=b=1; var c=a ++ b //会被解析成var c=a;++b; ps:运算顺序 ++a:先自增,再运算 a++:先运算,再自增 var a=b=0; alert(a++) //0---a=1 alert(++b) //1---b=1