美文网首页
《JavaScript权威指南》读书笔记1 可选的分号

《JavaScript权威指南》读书笔记1 可选的分号

作者: lidroid本人 | 来源:发表于2017-02-06 00:46 被阅读0次

    绝大多数编程语言以分号结束一条语句,但在JavaScript中除非你多条语句写在同一行必须用分号隔开,否则分号是可选的。JavaScript在无法正确解析代码的时候会自动填补分号,如:

    var a
    a
    =
    3
    console.log(a)
    

    JavaScript会将其解析为:var a;a=3;console.log(a)

    但是自动填补分号有很多例外情况,可能并不会如你想像般工作,比如下面的情况:

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

    JavaScript会看做:var y=x+f(a+b).toString();,这明显不是你想像的:var y=x+f;(a+b).toString();

    再看下面一种情况:

    return
    true
    

    JavaScript会看做:return;true;,也不是你想像中的:return true;

    下面的代码段也是出人意料的:

    x
    ++
    y
    

    JavaScript会看做:x;++y;,而不是:x++;y;

    总结如下

    1. 如果一条语句以“(”、“[”、“/”、“+”或“-”开始,那么它极有可能和前一条语句合在一起解析。
    2. 在return、break和continue和随后的表达式之间不能有换行。
    3. 涉及“++”和“--”运算符的时候,可以作为表达式的前缀,也可以当做表达式的后缀。如果将其用做后缀表达式,它和表达式应当在同一行。否则,行尾将填补分号,同时“++”或“--”将会作为下一行代码的前缀操作符并与之一起解析。

    对于99%的人来说,这些知识都是无用的,因为很少会有人不写分号,但是如果我们不幸遇到了此类代码(希望我们永远都不会遇到),这些知识有利于我们读懂它们。

    相关文章

      网友评论

          本文标题:《JavaScript权威指南》读书笔记1 可选的分号

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