javascript中的分号【;】
以前一直以为,在编写js代码的时候,如果在代码后面不添加分号,JavaScript会自动填补分号。最近看了权威指南,才突然发现一直理解有误,而且关于分号的使用,还有很多需要注意的地方。
1、分号的省略:如果两句代码用两行来书写,第一个分号是可以省略的。如果写在同一行,第一个分号则不能省掉。
1 //有效 2 a=3; 3 b=4; 4 //有效 5 a=3,b=4; 6 //有效 7 a=3;b=4;
2、JavaScript并不是在所有的换行处都填补分号,只有在缺少了分号就无法正确解析代码的时候,才会自动填补分号。如
//以下代码JavaScript将其解析为var a; a =3; console.log("a="+a); var a a =3 console.log("a=" +a); //a=3
3、不加分号可能带来的问题,如:
1 //写法 2 var y = x+f 3 (a+b).toString(); 4 //希望JavaScript这样来理解 5 var y = x+f; 6 (a+b).toString(); 7 //实际JavaScript是这样理解的,把f当做一个函数去调用,a和b是函数的两个参数 8 var y = x+f(a+b).toString();
那么面对分号的这么多问题,有没有好的解决方案呢?我个人觉得最好的办法就是规范代码的书写,在需要添加分号的地方手动添加好。