关于JS语句的分号

作者: Camelion | 来源:发表于2017-04-13 02:36 被阅读0次

    和别的编程语言一样,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”独自都可以构成一条符合语法的语句。

    相关文章

      网友评论

        本文标题:关于JS语句的分号

        本文链接:https://www.haomeiwen.com/subject/bkivattx.html