JavaScript权威指南2-可选的分号

    和其他编程语言一样,JavaScript使用分号(;)将语句分割.这堆增强代码的可读性和间接性是非常重要的:缺少分隔符,一条语句的结束就成了下一条语句的开始,反之亦然.

    在JavaScript中,如果局域各自独占一行,通常可以省略语句之间的分号(程序结尾或者右花括号之前的分号也可以省略).许多JavaScript程序员使用分号来明确标记语句的结束(个人推荐).而另一种风格就是,在任何可以省略分号的地方都将其省略,只有在不得不用的时候才使用分号.不管采用那种编程风格,关于JavaScript中可选分号的问题有几细节需要注意.

    1.

        考虑下面代码,因为两条语句用两行书写,第一个分号是可以省略掉的:

a = 3;
b = 4;

        如果按照如下格式书写,第一个分号则不能省略掉

a = 3;b = 4;

        注意:JavaScript并不是在所有换行都填补分号:只有缺少分号无法正确解析代码的时候,JavaScript才会填补分号.换句话说就是,如果当前语句和随后的非空格字符不能当成一个整体解释的话,JavaScript就在当前语句行结束处填补分号.如:

var a
a
=
3
console.log(a)

        JavaScript将其解释为:        

var a;
a = 3;
console.log(a);

        JavaScript给第一行换行出添加了分号,因为如果没有分号,JavaScript就无法解析代码var a a.第二个a可以单独当做一条语句"a;",但JavaScript并没有给第二行结尾处添加分号,因为它可以和第三行内容一起解析成"a = 3;"

        这种代码过多使用不但使人难以理解,而且使人逻辑混乱.考虑下面例子:

var y = x + f
(a+b).toString()

        JavaScript不会给第一行加上分号,因为第一行跟第二行似乎能后合并成  

var y = x + f(a+b).toString()

        显然这并不是我们想要的结果,所以必须手动加上分号.


    2.

        当在修改别人的代码的时候,因为不知道前面编码者的风格,所以很多程序员保守地在自己语句前面加上分号,这样就能保证前面的代码能正常执行,而保证新的代码不和旧的代码合并形成歧义.如上面的例子:

 var y = x + f    //上个编码者的代码
 ;(a+b).toString()    //加入的新代码


    3.

        1.return break continue所在行JavaScript一定会加上分号,例如;

return true

            会被解析成

return;
true;

        

    2.涉及"++"和"--"运算符时,直接上例子:

x
++
y

  会被解析为

x;
++y;

而不是

x++;
y;

 




    

你可能感兴趣的:(语法,javascript权威指南)