• nodejs中对es6语法规范讲解


    1、var的弊端及let关键字

    1、var声明的变量有预解析(变量提升),造成 逻辑混乱,可以先使用,后声明

     

    2、var可以重复定义同一个变量,逻辑错误,第二次应该是修改变量(覆盖上一个变量),而不是定义

    3、var用在for循环条件中,造成for 循环的污染的问题(var在定义时生成了一个全局变量,for循环结束变量依旧存在,且变量值一直在内存中开辟空间造成污染)

    4、var 声明的变量没有块级作用域(ES5中的作用域:全局和局部)

    // 1、var声明的变量有解析,造成 逻辑混乱,可以先使用,后声明
    // var a = 10;
    // console.log(a);
    ​
    // 2、var可以重复定义同一个变量,逻辑错误,第二次应该是修改变量,而不是定义
    // var a = 10;
    // var a = 30;
    // console.log(a);
    ​
    // 3、var用在for循环条件中,造成for 循环的污染的问题
    // for(var i=0; i<10; i++){
    //     console.log(i);
    // }
    // console.log("=====================");
    // console.log(i);
    ​
    // 4、var 声明的变量没有块级作用域(ES5中的作用域:全局和局部)
    // {
    //     var b = 200;
    // }
    // console.log(b);

    上面这些弊端,都在 ES6中的let关键字中得到解决:

    // console.log(a);   //报错
    // let a = 10;
    ​
    // let a = 10;
    // let a = 30; //报错
    ​
    ​
    // for(let i=0; i<10; i++){
    //     console.log(i);
    // }
    // console.log("=====================");
    // console.log(i);    //报错
    ​
    ​
    {
        let b = 200;
    }
    console.log(b);   //报错
    ​

    所以,let的特点

    1、let声明的变量没有预解析,不会有变量提升

    2、let不可以重复定义同一个变量

     

    3、let用在for循环条件中,不会造成for 循环的污染的问题

    4、let声明的变量有块级作用域(ES6中的作用域:全局和局部还有块级作用域)

    2、用const定义常量

    1、const用来定义常量,修改就会报错

    2、我们约定俗成地把常量都命名为大写

    3、对象型常量中的属性可以修改

    4、数组型常量中的每一项数据的引用类型可以修改

    // var PI = 3.141592653;
    //
    // console.log(PI);
    //
    // PI = 3.5;   //不符合我们认知,因为π是个定值
    // console.log(PI);
    //----------------------------------------------------
    // const PI = 3.141592653;   //定义PI常量
    // PI = 3.5;    //报错
    ​
    //----------------------------------------------------
    // const OBJ = {
    //     name: "nodejs",
    //     age:11,
    //     email:"nodejs@163.com"
    // };
    //
    // // OBJ = {};  //报错
    //
    // OBJ.job = "nodejs@qq.com";  //可以修改成功
    // console.log(OBJ);   //{ name: 'nodejs', age: 11, email: 'nodejs@qq.com' }
    //----------------------------------------------------
    ​
    const ARR = [10, 0, 30];
    ARR[1] = 20;
    console.log(ARR);   //[ 10, 20, 30 ]
    
  • 相关阅读:
    Linux下安装Mysql5.7,超详细完整教程,以及云mysql连接
    【北京迅为】《i.MX8MM嵌入式Linux开发指南》-第一篇 嵌入式Linux入门篇-第二十八章 借助U盘或TF卡拷贝程序到开发板上
    【线性代数】P2 行列式的性质
    你知道聊天机器人在医疗保健行业发挥了什么作用吗?
    Java-1123
    【Linux】:使用git命令行 || 在github创建项目 || Linux第一个小程序——进度条(进阶版本)
    mybatis如何对mysql数据库进行批量插入呢?
    计算机网络——以太网交换机的生成树协议、虚拟局域网
    GaussDB数据库SQL系列-聚合函数
    基于Tensorflow、Keras实现Stable Diffusion
  • 原文地址:https://blog.csdn.net/qq_64970126/article/details/125511319