美文网首页
var/let/const的区别

var/let/const的区别

作者: renxiaoyao09 | 来源:发表于2022-03-09 15:56 被阅读0次

    var有变量提升,let/const没有变量提升。原因是:
    var(function也是)在js进行解释扫描的时候,会先挂载在window上,而let/const并不挂载到window上

    // let在es5的实现(类似于从let开始到代码结束,加了一个自执行函数)
    (function () {
      var a = 1;
      console.log(a, this); // 1
      // ...后边的代码全放这里
    })();
    
    // const在es5中的实现(类似于从const开始加了一个对象)
    var aa = {
      init: () => {
        aa.A = 2;
        console.log(this, aa.A); // window  1
        // ...其他代码放这里
      },
     };
    Object.defineProperty(aa, "A", {
      value: 1,
      writable: false, //设置属性只读
      configurable: true,
      enumerable: true,
    });
    aa.init();
    

    相关文章

      网友评论

          本文标题:var/let/const的区别

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