ES6新增语法 let const

发布于:2022-12-27 ⋅ 阅读:(204) ⋅ 点赞:(0)


              1:用let声明变量具有块级作用域,先声明再使用
            

  let num = 10;
             if(1==1){
                 let num=5;
                 console.log("块级作用域的num:"+num);//5
             }
             console.log("全局作用域的num:"+num);//10


         2:不存在变量提升
            

 console.log(num);//error
             let num=10;


              3:暂时性死区,未声明就使用
         

   let num = 10;
            if(1==1){
                console.log(num);//error
                let num=20;
            }


            4:let声明的变量 不能重复
      

     let num=10;
            let num=100;
            console.log(num);//error


            5:const  let 变量 const常量
    


            const PI = 3.14;
            PI = 123;//重新赋值就会出错
            console.log(PI);


            
            案例 块级作用域,作用域链(没有声明往上找)
            
          

  let arr = [];
            
            for(let i=0;i<3;i++){
                arr[i] = function(){
                    console.log(i);
                }
            }
            arr[0]();//0
            arr[1]();//1
            arr[2]();//2
            
            let num = 10;//顶级属性
            
            console.log(window.num);


var let const 三者区别:

  • var:
  1. 定义变量会有变量提升
  2. 定义变量可以反复定义,后面定义的会覆盖前面的
  3. 在循环中使用的时候,循环体外依然可以使用
  4. 在循环绑定事件过程中,var定义的变量无法保存,循环会在瞬间执行完
  • let:
  1. let定义的变量不会预解析,必须先声明再使用,否则会报错
  2. let不能定义已经定义过的变量
  3. let是块级作用域,函数内部使用let定义后,对函数外部无影响,简单说就是在一个{}里面生效
  4. 由于let是块级作用域,在循环绑定事件过程中let会在这个循环中生效,再次循环时let会重新定义生效
  • const:
  1. const定义的变量不会预解析,必须先声明再使用,否则会报错
  2. const定义的变量不允许修改
  3. 但是,在数组里面,const的值是允许被修改的,这是因为const存储的是地址,值的内容可以变化

 使用 let,const 的声明的变量不属性顶层对象,返回 undefined

 let一般应用于基本数据类型;const 一般应用于引用数据类型,也就是函数对象等。

首先const声明常量的好处,一是阅读代码的人立刻会意识到不应该修改这个值,二是防止了无意间修改变量值所导致的错误,另外其实js编译器也对const进行了优化,可以提高代码的执行效率

本文含有隐藏内容,请 开通VIP 后查看

网站公告

今日签到

点亮在社区的每一天
去签到