• js中如果省略分号那么它是如何运行的


     

    在javascript工作中,我们几乎不会去省略分号;为了不必要的麻烦以及代码的规范,那么如果我们省略;会发生呢?预知详情请听下回分解。

    看代码!

    片段一:

    1 var a
    2 = 
    3 8
    4 console.log(a); >>8

    片段二:

    复制代码
    var a
    b
    = 
    8
    console.log(a); >>undefined
    console.log(b); >>8
    console.log(ab); >>Uncaught ReferenceError: ab is not defined
    复制代码

    看到了什么?

    你没有猜错,你可以这样去理解,当我们按回车就是给它加了一个空格,比如上面的片段一:var a = 8,但是它发现后面的console.log(a)是一个独立的语句所以js默认在var a = 8的后面加了一个分号;最后就变成了

    var a = 8;console.log(a);

    当然上面那只是一种情况,片段二的情况是这样的:var a;b=8;为什么会这样呢,因为js发现如果加的是空格的话就会出现错误 var a b = 8;是运行不了的,所以js就给它加了个分号,简单的来说如果前面的能够和后面的拼接上那么它加的就是空格,如果拼接不上就加分号,这个第二种情况。当然这也只是我的理解,如果有理解错误请告知。

    另外的还有几种特殊的情况

    复制代码
    1 var a = 2;
    2 var b = 3;
    3 a
    4 ++
    5 b
    6 console.log(a); >>2
    7 console.log(b); >>4
    复制代码

    如果是这种情况,它的运行结果是a;++b;

    至于为什么因为本人技术有限,暂时也不清楚。

    还有就是另外3个比较特殊的

    return,continue,break;

    如果有换行后面加的是分号

    return
    true;

    它解析成了return;true;

  • 相关阅读:
    JVM 常量池、运行时常量池、字符串常量池
    JVM Direct Memory
    JVM 方法区
    JVM GC Roots
    jvm 堆
    jvm slot复用
    JVM 虚拟机栈
    JVM 程序计数器
    java打印树形目录结构
    java 通过反射获取数组
  • 原文地址:https://www.cnblogs.com/zhangxiaolei521/p/5217994.html
Copyright © 2020-2023  润新知