zoukankan      html  css  js  c++  java
  • javascript 分号理解

    javascript自动填补分号的规则

    在说要不要写分号之前,先了解一下javascript自动填补分号的规则。

    在《javascript权威指南》中有一段话“如果一条语句以“(”、“[”、“/”、“+”、或“-”开始,那么它极有可能和前一条语句合在一起解释。”,写javascript的时候,如果每条语句都独自写成一行,是不需要写分号的,但是下一行如果遇到上面提到的符号,javascript可能会与下一行合并解释。其中以“/”、“+”和“-”开头的语句在实现项目中比较少见,以“(”和“[”开头的则非常常见。下面各找了一个例子来说明。

    以“(”开头的情况:

    a = b
    (function() {
        
    })()
    

    javascript会解释成:

    a = b(function() {
        
    })();
    

    以“[”开头的情况

    a = function() {
    
    }
    [1,2,3].forEach(function(item) {
        
    });
    

    javascript会解释成:

    a = function() {
    }[1,2,3].forEach(function(item) {
        
    });
    

    以“/”开头的情况

    a = 'abc'
    /[a-z]/.test(a)
    

    期望的结果为true,但是javascript会解释成,接着就报错了:

    a = ‘abc’/[a-z]/.test(a);
    

    以“+”开头的情况

    a = b
    +c
    

    javascript会解释成

    a = b + c;
    

    以“-”开头的情况

    a = b
    -c
    

    javascript会解释成

    a = b - c;
    

    如果在return、break、continue、throw等关键字后面换行,javascript会在换行处填补分号。如:

    return
    {
        a: 1
    }
    

    会解释成:

    return;
    {
        a: 1
    }
    

    如果“++”或“--”运算符作为表达式的后缀时,表达式应该写在同一行,否则也会解释有误

    例如:

    x
    ++
    y
    

    会解释成:

    x;
    ++y;
    

    而不是

    x++;
    y;
  • 相关阅读:
    JZOJ 3034. 【NOIP2012模拟10.17】独立集
    JZOJ 3035. 【NOIP2012模拟10.17】铁轨
    JZOJ 1259. 牛棚安排
    数位DP JZOJ 3316. 非回文数字
    JZOJ 3046. 游戏
    JZOJ 3013. 填充棋盘
    debian 安装oracle提供的java8
    java 汉字转拼音 PinYin4j
    debian ssh设置root权限登陆 Permission denied, please try again
    java并发下订单生成策略
  • 原文地址:https://www.cnblogs.com/honghong87/p/9673858.html
Copyright © 2011-2022 走看看