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;
  • 相关阅读:
    mini2440移植uboot 2014.04(四)
    mini2440移植uboot 2014.04(三)
    【这些年】Linux C/C++软件开发用过的工具
    Valgrind的Memcheck快速入门
    《浪潮之巅》读后感
    三层浅析及示例分析
    C语言的代码内存布局详解
    超级立方体小记
    如何和项目经理沟通产品的交付?
    CentOS配置smaba与Windows共享文件
  • 原文地址:https://www.cnblogs.com/honghong87/p/9673858.html
Copyright © 2011-2022 走看看