JavaScript高级程序设计(第4版)
上QQ阅读APP看书,第一时间看更新

6.9 小结

JavaScript中的对象是引用值,可以通过几种内置引用类型创建特定类型的对象。

❑ 引用类型与传统面向对象编程语言中的类相似,但实现不同。

❑ Object类型是一个基础类型,所有引用类型都从它继承了基本的行为。

❑ Array类型表示一组有序的值,并提供了操作和转换值的能力。

❑ 定型数组包含一套不同的引用类型,用于管理数值在内存中的类型。

❑ Date类型提供了关于日期和时间的信息,包括当前日期和时间以及计算。

❑ RegExp类型是ECMAScript支持的正则表达式的接口,提供了大多数基本正则表达式以及一些高级正则表达式的能力。

JavaScript比较独特的一点是,函数其实是Function类型的实例,这意味着函数也是对象。由于函数是对象,因此也就具有能够增强自身行为的方法。

因为原始值包装类型的存在,所以JavaScript中的原始值可以拥有类似对象的行为。有3种原始值包装类型:Boolean、Number和String。它们都具有如下特点。

❑ 每种包装类型都映射到同名的原始类型。

❑ 在以读模式访问原始值时,后台会实例化一个原始值包装对象,通过这个对象可以操作数据。

❑ 涉及原始值的语句只要一执行完毕,包装对象就会立即销毁。

JavaScript还有两个在一开始执行代码时就存在的内置对象:Global和Math。其中,Global对象在大多数ECMAScript实现中无法直接访问。不过浏览器将Global实现为window对象。所有全局变量和函数都是Global对象的属性。Math对象包含辅助完成复杂数学计算的属性和方法。

ECMAScript 6新增了一批引用类型:Map、WeakMap、Set和WeakSet。这些类型为组织应用程序数据和简化内存管理提供了新能力。