美文网首页
ES6 let var const解析

ES6 let var const解析

作者: 楼上那只猫 | 来源:发表于2020-06-17 22:37 被阅读0次

    let 和 var,const

    1. let声明的变量只在let所在的代码块有效
    {
           let a = 2;
           var b = 3;
    }
    console.log(a);  //Uncaught ReferenceError: a is not defined
    
    1. for循环中,var声明的是全局的,let只在for循环有效
    for(var i = 0; i<5;i++) {
                setTimeout(() => {
                    console.log(i);
                }, 0);
            }
    var修饰,打印结果全是5.
    
    for(let i = 0; i<5;i++) {
                setTimeout(() => {
                    console.log(i);
                }, 0);
            }
    打印结果是0,1,2,3,4
    
    1. var会发生变量提升,即变量可以在声明之前使用。值是undefined
      let不会,声明之前使用会报错
    console.log(m);  //undefined
    var m;
    console.log(n); // Uncaught ReferenceError: Cannot access 'n' before initialization
    let n = 3;
    
    1. 暂时性死区。
      ES6 明确规定,如果区块中存在let和const命令,这个区块对这些命令声明的变量,从一开始就形成了封闭作用域。凡是在声明之前就使用这些变量,就会报错
      总之,在代码块内,使用let命令声明变量之前,该变量都是不可用的
    if(true) {
      tem = '2';
      console.log(tem); // Uncaught ReferenceError: Cannot access 'tem' before initialization
    let tem;
    }
    
    1. const声明的变量不得改变值,意味着一旦声明就必须初始化。
    const a; // Uncaught SyntaxError: Missing initializer in const declaration
    

    相关文章

      网友评论

          本文标题:ES6 let var const解析

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