美文网首页
ES6--let和const

ES6--let和const

作者: lvyweb | 来源:发表于2021-06-08 06:58 被阅读0次

    特点:

    let

    1. let声明变量没有变量提升
    console.log(a);//Uncaught ReferenceError: Cannot access 'a' before initialization
        let a = 10;
        console.log(a);
    
    1. 是一个块级作用域
    if(1===1){
        let b = 10;
    }
    console.log(b);//Uncaught ReferenceError: b is not defined
    
    1. 不能重复声明
        let c = 10;
        let c = 11;
        console.log(c)//Uncaught SyntaxError: Identifier 'c' has already been declared
    

    const

    const 声明常量 一旦被声明 无法修改,符合let的特点(没有变量提升,也是块级作用域,不能重复声明)

    const max = 30;
    console.log(max)//30
    max = 40;
    console.log(max)//Uncaught TypeError: Assignment to constant variable.
    -----------------------------------
    const person ={
        name:'小玉米'
    }
    // 可以这样修改
    person.name = "高考";
    // 不能这样修改
    console.log(person)//{name: "高考"}
    person ={
        name:'1212'
    } 
    // Uncaught TypeError: Assignment to constant variable
    

    作用1 : for循环是个经典的例子

    var arr =[];
    for(var i = 0; i< 10;i++){
        arr[i] = function(){
            return i ;
        }
    }
    console.log(arr[5]())//10 
    
    
    var arr =[];
    for(let i = 0; i< 10;i++){
        arr[i] = function(){
            return i ;
        }
    }
    console.log(arr[5]())//5 
    

    作用2 : 不会污染全局变量

    let RegExp = 10;
    console.log(RegExp)// 10
    console.log(window.RegExp)// RegExp() { [native code] }
    

    建议
    在默认情况下用const,而只有在你知道变量值需要被修改的情况建议使用let

    相关文章

      网友评论

          本文标题:ES6--let和const

          本文链接:https://www.haomeiwen.com/subject/kzpheltx.html