聊聊var与let 在window下面的区别(除开作用域)

关于let在window下面访问时无法获取到的原因:

  先看代码:

var age = 29;
let ages = 29;
alert(window.age)
alert(window.ages )

  由此可以看的出来,为什么同为window下面的全局变量;

    var定义的变量可以获取到 而let不可以?

那么问题来了其他定义变量的方法如:es6的let、const、import、class再加上ES5的var、function 一起6种声明变量的方式

 有什么规律呢?共同点呢?

进入正题:我们来了解下吧

 首先我们需要了解浏览器环境中顶层对象是window,Node中是global对象

 (重点了)es5中顶层变量的属性等价于全局变量,

  到了es6中有所改变,es5的var function 声明的全局变量 依旧是顶级对象的属性 而es6声明的全局变量不属于顶级对象的属性了

猜你喜欢

转载自www.cnblogs.com/xweizi/p/10093967.html
今日推荐