zoukankan      html  css  js  c++  java
  • 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
  • 相关阅读:
    一些术语
    Professional Frontend Engineering
    爱上阿森纳,爱上一种信仰
    ThinkPHP 和 UCenter接口的冲突
    这个城市
    来自Google的10条价值观
    如何将Gb2312转为unicode?
    未完成的代码(JS)
    微软也用PHP?!
    博客园对"公告"的Js进行了过滤
  • 原文地址:https://www.cnblogs.com/LinSL/p/7159568.html
Copyright © 2011-2022 走看看