ECMA262学习笔记(一)

时间:2023-03-09 15:01:07
ECMA262学习笔记(一)

Question1:怎样理解ECMAScript对象?

Answer:ECMAScript对象是属性的集合,每个属性又有零个或者多个特性(如:writable)。属性是持有其他对象、原始值、函数的容器。原始值是一下内置类型之一的成员:Undefined、Null、Number、String、Boolean;对象是内置类型Object的成员;函数是可调用对象(也有的硕士可执行对象),方法是通过属性与对象关联的函数。

Question2:为什么说ECMAScript是基于对象的?

Answer:ECMAScript的基本语言和宿主设施都由对象提供,ECMAScript程序十一组可通信的对象。

Question3:ECMAScript的内置对象(build-in Object)?

Answer:全局对象、Object对象、Function对象、Array对象、Array对象、String对象、Boolean对象、Number对象、Math对象、Date对象、RegExp对象、JSON对象、Error对象。

Question4:怎样理解原型链?

Answer:每个构造器创建的对象,都有一个隐式的引用(_proto_,对象的原型),链接到构造器的“prototype“属性值,原型也可能有一个非空的隐式引用链接到自己的原型,以此类推,这叫做原型链。

Question5:JS中的相关术语的定义?

Answer:

(1)原始值:undefined、null、boolean、number、string类型之一的成员。原始值直接代表语言实现的最底层数据。

(2)对象:对象是属性的集合,并有一个远行对象。原型可以是空值(Null)。

(3)构造器:创建和初始化对象的函数对象。构造器的“prototype”属性值是一个原型对象,它用来实现继承和共享属性。

(4)原型:为其他对象提供共享属性的对象。

(5)原生对象:不是由宿主环境所定义而是由ECMAScript规范定义其语义的对象。一些原生对象是内置的,其他的可在ECMAScript程序执行过程中构建。

(6)内置对象:有ECMAScript实现提供,独立于宿主环境的对象,ECMAScript程序开始执行时就存在。所有的内置对象都是原生对象。

(7)宿主对象:有宿主环境提供的对象,用于完善ECMAScript执行环境。任何对象不是原生对象就是宿主对象。

(8)未定义值:说明一个变量没有被分配值的一个原始值。(是一个原始值,用来说明一个变量没有被分配值!)

(9)未定义类型:拥有唯一值“未定义值”的类型。

(10)空值:代表对象值故意留空的一个原始值。

(11)空类型:拥有唯一值“空值”的类型。

(12)布尔值:布尔类型的成员,只有两个布尔值,true和false。

(13)布尔类型:由原始值true和false组成的类型。

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

(15)字符串值:原始值,他是零个或多个16位无符号呢整数组成的有限有序序列。

(16)字符串类型:所有可能的字符串值的集合。

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

(18)数字值:原始值,对应一个64位双精度二进制IEEE754值。

(19)数字类型:所有可能的数字值的集合,包括特殊的NaN值,正无穷,负无穷。

(20)数字对象:标准内置构造器Number的一个实例。通过使用new表达式,以一个数字值作为参数调用Number构造器来创建数字对象。由此产生的对象包含和一个职位此数字值的内部属性。蒋Number构造器作为一个函数来调用,可将一个Number对象强制转换为一个数字值。

(21)无穷:正无穷数字值。

(22)NaN:not a number   值为IEEE 754“Not-a-Number”的数字值。

(23)函数:标准内置构造器Function的一个实例,并且可作为子程序被调用。函数除了拥有命名的属性,还包含可执行代码、状态,用来确定被调用时的行为。函数的代码不限于 ECMAScript。

(24)内置函数:作为函数的内置对象。如 parseInt 和 Math.floor()。

(25)方法:作为属性值的函数。当一个函数被作为一个对象的方法调用,此对象将作为 this 值传递给函数。

(26)内置方法:作为内置函数的方法。

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