zoukankan      html  css  js  c++  java
  • 【JavaScript 从零开始】 语言核心部分----可选的分号

    Node.js很是火爆,前段待遇好的飞起。。。。

    于是我决定....

    重头开始学习JavaScript
    有些比较特别的,或者之前我们注意到,再或者容易出错
    东西我会记录下来。

    可选的分号

    和其他许多编程语言一样,JavaScript 使用分号(;)将语句分隔开的。这对增强代码的可读性和整洁性非常重要。

    缺少分割符,一条语句的结束就成了下一跳语句的开始,反之亦然。

    在JavaScript中,如果语句个独自占一行,通常可以省略语句之间的分号(程序结尾或又花括号"}"之前的分号也可以省略)。

    许多JavaSritpt程序员使用分号来明确语句的解释,即使在并不完全需要分号的时候也是如此。

    我也建议大家这样做。

    如下代码,

    a=3;
    b=4;
    //因为两条语句用两行书写,第一个分号是可以省略掉的
    a=3;b=4;
    //如果在一行,第一个分号则不能省略

    需要注意的是,JavaScript并不是所有的换行都要填补分号,只有缺少了分号就无法正确解析代码的时候,JavaScript才会填补分号。

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

    看如下的例子,

    var y=x+f
    (a+b).toString()
    
    //第二行的圆括号与第一行的f 组成一个函数调用
    //JavaScript 会解析成
    
    var y=x+f(a+b).toString();

    而上面的代码本意却不是这样的。分号还是不要省略的好。

    通常来讲,如果一条语句以 "("、"[" 、"/" 、"+" 或者 “-” 开始,那么它极有可能和前一条语句在一起解析。

    以"/" 、"+" 或者 “-” 开始的语句并不常见,而以 "("、"["  开始的语句则非常常见,至少在一些JaveScript编码风格中是很普遍的。

    有些程序员喜欢保守的在语句前加上一个分号,这样哪怕之前的语句被修改了、分号被误删除了,当前语句还是会正确解析:

    var x=0 //这里省略了分号
    ;[x,x+1,x+2].forEach(console.log)//前面的分号保证了正确的语句解析

    如果当前语句和下一行语句无法合并解析,JavaScript则在第一行后填补分号,这是通用的规则,但有两个例外。

    第一个例外是在涉及return、break和continue语句的场景中。如果这三个关键字后紧跟着换行,JavaScript则会在换行处填补分号。

    例如:

    return 
    ture;
    //JavaScript会解析成:
    return ;  true;
    //而代码本意是这样的:
    return   true;

    第二个例外是在涉及"++"和"--"运算符的时候。

    这些运算符可以作为表达式的前缀,也可以当做表达式的后缀。

    如果将其用作后缀表达式,他和表达式应当咋同一行。

    否则,行尾将填补分号,同事""++或"--"将会作为下一行代码的前缀操作符并与之以前解析。

    例如:

    x
    ++
    y
    //这段代码解析为" x;++y"而不是 "x++;y" 

    最后还是提醒大家 使用分号来明确语句的解释,即使在并不完全需要分号的时候也是如此。

    如果你觉得有点用处还请推荐一下。

  • 相关阅读:
    从头来之【图解针对虚拟机iOS开发环境搭建】 (转)
    换工作?请记得8、18、48与72这四个密码(转)
    php
    linux上svn连接visual svn server时ssl鉴权失败,问题解决(转)
    javamail发送邮件的简单实例(转)
    稀疏矩阵
    Redis11种Web应用场景
    说说ShellExecuteEx
    怎样从host之外连接到docker container
    hadoop日志分析
  • 原文地址:https://www.cnblogs.com/178mz/p/5035917.html
Copyright © 2011-2022 走看看