美文网首页
ES6的全局对象属性

ES6的全局对象属性

作者: 博为峰51Code教研组 | 来源:发表于2017-05-04 20:29 被阅读0次

全局对象是指最顶层的对象,在浏览器环境下是指window对象。在ES5中,全局对象的属性和全局变量是等价的。

例如

输出结果:

1

2

a是全局对象window的属性,b是全局对象,所以对全局对象属性的赋值和全局对象的赋值,实际就是一回事。

从上述代码可以看出,未声明的全局变量,会自动认为全局变量window的属性,这是被人们认为是javaScript设计的败笔之一。这样的设计带来了两个很大的问题,首先是没法在编译时就报出变量未声明的错误,只有运行时才能知道,其次程序员很容易不知不觉地就创建了全局变量(比如打字出错)。另一方面,从语义上讲,语言的顶层对象是一个有实体含义的对象,也是不合适的。

那么在ES6语法中,改变了这一弊端。ES6规定为了保持浏览器的兼容性,使用var,function声明全局变量,仍然是全局对象的属性。另一方面规定let,const,class命令声明的全局,不属于对象属性

运行结果:

1

undefined

相关文章

  • 顶层对象的属性

    顶层对象属性ES6 之后 var和function命令声明全局变量,依然是顶层对象的属性但是,let const ...

  • 杂货小铺之ES6+ 🍕 Let

    let ? ES6新增了let命令,用来声明变量 let声明的全局变量不是全局对象window的属性; ? :va...

  • ES6的全局对象属性

    全局对象是指最顶层的对象,在浏览器环境下是指window对象。在ES5中,全局对象的属性和全局变量是等价的。 例如...

  • 03- global 顶层对象

    1、从 ES6 开始,全局变量将逐步与顶层对象的属性脱钩 var 命令和 function 命令声明的全局变量,依...

  • 第八周第五天笔记之es6+面向对象+jQuery版左右切换轮播图

    1 es6+面向对象+jQuery版左右切换轮播图实例 思路:es6中面向对象的创建,用class创建类全局属性放...

  • es6 对象 笔记

    创建对象 es5 es6 对象的key 对象属性的缩写 对象的动态属性名 对象属性的get()和set() 对象的...

  • ECMAScript对象扩展

    属性的简洁表示法 ES6允许直接写入变量和函数,作为对象的属性和方法 ES6允许在对象之中,只写属性名,不写属性值...

  • ES6对象用法

    属性的简洁表示法 ES6允许直接写入变量和函数,作为对象的属性和方法。 ES6允许在对象之中直接写变量,这时,属性...

  • 第四节: 全局属性,方法(控制台,定时器与进程)

    1. 全局属性之控制台对象 console是node全局对象global的属性, 其值也是打印对象. 和JavaS...

  • ES6 对象的扩展

    1. 属性的简洁表示法 ES6允许直接写入变量和函数作为对象的属性和方法。 上面表明,ES6允许在对象中写属性名,...

网友评论

      本文标题:ES6的全局对象属性

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