4.3 术语和定义

本文档将使用下列术语和定义。

4.3.1 type

本规范第六章中定义的数据值的集合

4.3.2 原始值 (primitive value)

在本规范的第 6 章定义的Undefined, Null, Boolean, Number, Symbol, or String类型之一的成员。

注意: 原始值直接代表语言实现的最底层的数据。

4.3.3 对象 (object)

对象类型的成员。

注意: 对象是属性的集合,并有一个原型对象。原型可以是null值。

4.3.4 构造器 (constructor)

创建和初始化对象的函数对象。

注意: 构造器的“prototype”属性值是一个原型对象,它用来实现继承和共享属性。

4.3.5 原型 (prototype)

为其他对象提供共享属性的对象。

注意: 当构造器创建一个对象,为了解决对象的属性引用,该对象会隐式引用构造器的“prototype”属性。通过程序表达式 constructor.prototype 可以引用到构造器的“prototype”属性,并且添加到对象原型里的属性,会通过继承与所有共享此原型的对象共享。另外,可使用 Object.create 内置函数,通过明确指定原型来创建一个新对象。

4.3.6 普通对象(ordinary object)

那些拥有所有对象都必须支持的重要的内部方法作为其默认行为的对象

4.3.7 异常对象(exotic object)

那些只拥有部分或者没拥有所有对象都必须支持的重要的内部方法作为其默认行为的对象

4.3.8 标准对象(standard object)

那些语法在本规范中定义的对象

4.3.9 内置对象(built-in object)

那些特殊的必须被ECMAScript实现的对象

4.3.10 未定义对象 (undefined value)

一个变量没有被分配值时所使用的一个原始值。

4.3.11 未定义类型 (Undefined type)

拥有唯一值“未定义值”的类型。

4.3.12 空值 (null value)

代表对象值故意留空的一个原始值。

4.3.13 空类型 (Null type)

拥有唯一值“空值”的类型。

4.3.14 布尔值 (Boolean value)

布尔类型的成员。

注意:只有两个布尔值,true 和 false 。

4.3.15 布尔类型 (Boolean type)

由原始值 true 和 false 组成的类型。

4.3.16 布尔对象 (Boolean object)

对象类型的成员,它是标准内置构造器 Boolean 的一个实例。

注意:通过使用 new 表达式,以一个布尔值作为参数调用 Boolean 构造器来创建布尔对象。由此产生的对象包含一个值为此布尔值的内部属性。一个 Boolean 对象可以强制转换为布尔值。

4.3.17 字符串值 (String value)

原始值,它是零个或多个 16 位无符号整数组成的有限有序序列。

注意:一个字符串值是字符串类型的成员。通常序列中的每个整数值代表 UTF-16 文本的单个 16 位单元。然而,对于其值,ECMAScript 只要求必须是 16 位无符号整数,除此之外没有任何限制或要求。

4.3.18 字符串类型 (String type)

所有可能的字符串值的集合。

4.3.19 字符串对象 (String object)

对象类型的成员,它是标准内置构造器 String 的一个实例。

注意:通过使用 new 表达式,以一个字符串值为参数调用 String 构造器来创建字符串对象。由此产生的对象包含一个值为此字符串值的内部属性。将 String 构造器作为一个函数来调用,可将一个字符串对象强制转换为一个字符串值(21.1.1.1 )。

4.3.20 数字值 (Number value)

原始值,对应一个 64 位双精度二进制 IEEE754 值。

注意:一个数字值是数字类型的成员,直接代表一个数字。

4.3.21 数字类型 (Number type)

所有可能的数字值的集合,包括特殊的“Not-a-Number”(NaN) 值,正无穷,负无穷。

4.3.22 数字对象 (Number object)

对象类型的成员,它是标准内置构造器 Number 的一个实例。

注意:通过使用 new 表达式,以一个数字值为参数调用 Number 构造器来创建数字对象。由此产生的对象包含一个值为此数字值的内部属性。将 Number 构造器作为一个函数来调用,可将一个 Number 对象强制转换为一个数字值(20.1.1.1 )。

4.3.23 无穷 (Infinity)

正无穷数字值。

4.3.24 NaN

值为 IEEE 754“Not-a-Number”的数字值

4.3.25 Symbol 值

原始值,代表唯一的非字符串的对象属性名

4.3.26 Symbol 类型

所有可能的Symbol值的集合

4.3.27 Symbol 对象

Object类型的一员,内置Symbol构造函数的实例

4.3.28 函数 (function)

对象类型的成员,标准内置构造器 Function 的一个实例,并且可做为子程序被调用。

注意:函数除了拥有命名的属性,还包含可执行代码、状态,用来确定被调用时的行为。函数的代码可能不是写在 ECMAScript中。

4.3.29 内置函数 (built-in function)

内置对象中的函数。

注意:如 parseInt 和 Math.exp 就是内置函数。一个实现可以提供本规范没有描述的依赖于实现的内置函数。

4.3.30 属性 (property)

作为对象的一部分,其把key和value关联在一起。

属性可能根据属性值的不同表现为直接的数据值(原始值,对象,或一个函数对象)或间接的一对访问器函数。

4.3.31 方法 (method)

作为属性值的函数。

注意:当一个函数被作为一个对象的方法调用,此对象将作为 this 值传递给函数。

4.3.32 内置方法 (built-in method)

作为内置函数的方法。

注意:标准内置方法由本规范定义,一个 ECMAScript 实现可定义提供其他额外的内置方法。

4.3.33 特性 (attribute)

定义一个属性的一些特性的内部值。

4.3.34 自身属性 (own property)

对象直接拥有的属性。

4.3.35 继承属性 (inherited property)

不是对象的自身属性,但是是对象原型的属性 ( 原型的自身属性或继承属性 )。