ES6_入门(3)_顶层对象属性

 

 1 //顶层对象属性:在ES5中,顶层对象的属性与全局变量是等价的.以下代码中,为顶层对象的属性赋值与全局变量的赋值,是同一件事。
 2         window.a=10;
 3         console.log(window.a);//10
 4         a=40;
 5         console.log(window.a);//40
 6 
 7         //2
 8         //顶层对象属性与全局变量挂钩的缺点:
 9         //(1)无法在编译时就报出变量未声明的错误。
10         //(2)容易无意间创建全局变量。
11         //(3)顶层对象的属性是到处可以读写的,不利于模块化编程。
12         //(4)window对象是实体含义,指的是浏览器的窗口对象,顶层对象的是一个有实体含义的对象,不是很合适。
13 
14         //3 ES6规定
15         // 为了保持兼容性,var命令和function命令声明的全局变量,依旧是顶层对象的属性;另一方面规定,let命令、const命令、class命令声明的全局变量,不属于顶层对象的属性。也就是说,从ES6开始,全局变量将逐步与顶层对象的属性脱钩。
16 
17         var a=1;
18 
19         console.log(window.a);//1
20         let b=1;
21         console.log(window.b);//undefined

 

posted @ 2017-07-13 11:29  忍冬。  阅读(693)  评论(0编辑  收藏  举报