JavaScript权威指南

关于JS语句的分号

2017-04-13  本文已影响0人  Camelion

和别的编程语言一样,JS用分号(;)将语句分隔开。但在JS中,即使没有分号,有时候也可以运行得通,因为JS在解析时会根据语法自动填补分号。

显然这种自动填补往往会带来错误的结果。例如

var y=x+f

(a+b).toString()

JS解析器会将它看作 

var y=x+f(a+b).toStrng();

总结一下在却少分号情况下JS解析的规律,如下:

(1)从前往后,从左到右,顺序执行,直到读取的内容符合标准语法规则,JS解析器会在此处自动填补一个分号。例如

x

++

y

将解析为:

x; ++y;

而不是“x++; y;”。

(2)如果接下来的内容不能解析成一条符合语法的语句,那么将会向上配对,直至符合语法。例如

var a

a

=

3

console.log(a)

解析为

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

再看一个例子

return

true

解析的结果是

return; ture;

为什么会是这样呢?因为“return”和“true”独自都可以构成一条符合语法的语句。

上一篇下一篇

猜你喜欢

热点阅读