你不知道的let和const

2018-12-08  本文已影响0人  superestZe

基本用法

{
    let a=10;
    var b=1;  // 尽量避免使用var
}

let 与 var 相比, 优点:

  1. 不存在变量提升

    // var
    console.log(a); // undefine
    var a=2
    
    // let
    console.log(a); // error
    let a=2
    

    由于var 存在变量提升,写法类似如下,经常会造成一些无法预料的bug

    var a 
    console.log(a)  
    a=2
    
  2. 不允许重复声明

    function fn(){
        let a=10;
        var a=1;   // 报错
    }
    
    // 不能再函数内部重新声明参数
    function fn(arg){
        let arg // 报错
    }
    
    function func(arg){
        {
            let arg; // 不报错
        }
    }
    
  3. 块级作用域

    // 外层代码块不受内层代码块的影响
    function fn(){
        let n=5;
        if(true){
            let n=10;
        }
        console.log(n)  //5
    }
    

const的优点

  1. const声明的常亮是否可修改?

    //值类型不可修改
    const a=1;
    a=2 //报错
    
    // 引用类型可以添加属性
    const o= {};
    o.a=1;
    
    

    本质: const 实际上保证的不是变量的值不能改动, 而是变量指向的那个内存地址不得改动

上一篇下一篇

猜你喜欢

热点阅读