Javascript核心读书有感之词法结构(3)

var y = x + f
            (a+b).toString()
第二行的圆括号却和第一行的f组成了一个函数调用,javascript会把这段代码看做

var y = x+f(a+b).toString();
显然代码的本意不是这样,为了能让上述代码解析成两条不同的语句,必须手动填写行为的显示分号

通常来讲,如果一条语句以 ( [ / + -开始,那么它极有可能和前条语句组合在一起解析,以/ + -开始的语句不很常见,但以( [开始的语句则非常常见。至少在一些javascript编码符风格中是很常见的。有点程序员喜欢保守的在语句前边加上一个分号,这样,哪怕之前的语句被修稿了,分号被误删了,当前语句还是会正确的解析;
如果当前语句和下一行语句无法合并解析。javascript则在第一行后填补分号,这是通用规则,但有两个列外。第一个例外是涉及到returnm,birak,he continue语句,如果这三个关键字后紧跟着换行。javascript则会在换行处填补分号。例如

例如

return
true;
而 javascript解析成

return;ture;
而代码的本意是

return ture;
也就是说return,break,contuine好的随后的表达式之间不能有换行,如果添加了换行,程序则在极有特殊情况才能报错。而且程序的调试很不方便。

第二个例子是涉及到++ --运算符时,这些表达式符号可以代表标识符表达式的前缀和后缀。如果将其又再后表达式,如果的将其用做后缀表达式。它和表达式应该看做一行。否则行尾将填补分号。

复制代码 代码如下:


x
++
yy

以上代码解析为

复制代码 代码如下:


 x;
++y

您可能感兴趣的文章:

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wgfsxy.html