zoukankan      html  css  js  c++  java
  • JavaScript学习日志:关于js分号

    javascript有自动添加分号的功能,但是不是所有情况都会自动添加,要区分:

    1,如果语句独占一行

    如果当前行内的语句能够被js正确解析,那么就会在句尾添加一个分号。

    (如何判断是否正确解析?你在控制台执行当前语句,不报错就可以-。-)

    那么反之,如果当前语句不能被正确解析,那么就不会添加分号,而是将此行的末尾和下一行的开头连起来解析,所以就会产生其他问题。

    a=1
    b=1;
    
    // 第一个分号可以省略
    
    var a
    a
    =
    1
    
    // 解析为 var a; a = 1; 因为等号是没办法解析的,所以必须将上面和下面联系起来,虽然a是可以解析的,因为上面已经声明了变量a

    2,return , continue, break的换行处

    如果上面三个关键字后换行了,那么会直接在后面加分号,所以如果有表达式要跟在后面,一定不能换行。

    return
    true;
    
    // 解析成return; true;  而不是return true;

    3,代码块之后不能添加分号

    比如if语句的代码块,for循环的代码块等等,后面不能手动写分号

    4,以"(" , "[" , "/" , "+" , "-"开始的语句

    如果一条语句以上面几个开始,那么它上面一行的代码结尾一定不能漏掉分号,尽管上一条语句可以单独被正确解析,例如

    var a
    []
    
    // 报错
    
    var a;
    []
    
    // 不报错
    

      

    5,"++" , "--"也比较特殊

    如果将其作为后缀表达式,它和表达式在同一行,否则,行尾填补分号,同时“++”和“--”作为下一行代码的前缀操作符:

    x
    ++
    y
    
    //解析为 x; ++y;   而不是我们期望的 x++; y;
    

      

  • 相关阅读:
    iOS,Android,WP, .NET通用AES加密算法
    iOS开发笔记-图标和图片大小官方最新标准
    因为对 Docker 不熟悉建了 N 多个 Nginx
    Docker 学习笔记 2019-05-27
    Linux Mint 19.1 安装 Docker 过程笔记
    W600 一块新的 KiCad PCB
    KiCad Mark 点名称
    一次乙型流感记录(2019-05-24)
    为什么不喜欢在 QQ 群里回答问题?
    Git 的两种忽略文件方式 gitignore 和 exclude
  • 原文地址:https://www.cnblogs.com/yanchenyu/p/7976009.html
Copyright © 2011-2022 走看看