JavaScript高级程序设计读书笔记-对象基础

ECMAScript对象是JavaScript比较特殊的特性之一。 JavaScript中一切都是对象(包括函数)ECMA-262的对象定义:属性的无序集合,每个属性存放一个原始值、对象或函数

对象的构成: 在ECMAScript中,对象由特性(attribute)构成,特性可以是原始值,也可以是引用值。如果特性存放的是函数,它将被看作对象的方法(method),否则该特性被看作属性(property)。

对象的类型:
本地对象(native object):ECMA-262定义为“ 独立与宿主环境的ECMAScript实现提供的对象”。它们包括:Object、Function、Array、String、Boolean、Number、Date、RegExp、Error、EvalError、RangeError、ReferenceError、SyntaxError、TypeError、URIError

内置对象(built-in object):ECMA-262定义为“ 由ECMAScript实现提供的、独立于宿主环境的所有对象,在ECMAScript程序开始执行时出现”。这意味着开发者不必明确实例化内置对象,它已经被实例化了。ECMA-262只定义了两个内置对象:Global和Math(它们也是本地对象,根据定义,每个内置对象都是本地对象)。

Global对象:
在ECMAScript中,不存在独立的函数,所有函数都必须是某个对象的方法。象前面提到的parseInt函数,它其实是Global对象的方法。
Global对象的方法:isNan()、isFinite()、parseInt()、parseFloat()、encodeURI()、encodeURIComponent()、decodeURI()、decodeURIComponent()、eval()
encodeURI()、encodeURIComponent()的区别: encodeURI()方法不对URI中的特殊字符进行编码,如冒号、斜杠、问号、井号,而encodeURIComponent()则对它发现的所有非标准字符进行编码。
Global对象的属性:undefined、NaN、Infinity以及所有本地对象的构造函数

宿主对象(host object): 所有非本地对象都是宿主对象。即由实现ECMAScript的宿主环境提供的对象。 所有DOM和BOM对象都是宿主对象

ECMAScript中只存在一种作用域:公用作用域。 ECMAScript中的所有对象的所有属性和方法都是共用的

你可能感兴趣的:(JavaScript)