JS中的内置对象
JS的三大对象
JavaScript有三大对象,本地对象、内置对象和宿主对象。
宿主对象
- 由ECMAScript实现的宿主环境提供的对象,包含两大类,一个是宿主提供,一个是自定义类对象
- 所有非本地对象都属于宿主对象
- 对于嵌入到网页中的JS来说,其宿主对象就是浏览器提供的对象,浏览器对象有很多,如Window和Document等
- 所有的DOM和BOM对象都属于宿主对象
本地对象
- 与宿主无关,独立于宿主环境的ECMAScript实现提供的对象
- 简单地说,本地对象就是ECMA-262定义的类(引用类)
- 这些引用类型在运行过程中需要通过new来创建所需的实例对象
- 本地对象有:Object、Array、Date、RegExp、Function、Boolean、Number、String等
内置对象
- 与宿主无关,独立与宿主环境的ECMAScript实现提供的对象
- 在ECMAScript程序开始执行前就存在,本身就是实例化内置对象,开发者无需再去实例化
- 内置对象是本地对象的子集
- 内置对象有Global和Math
- ECMAScript5中增添了JSON这个存在于全局的内置对象
专业名词
本地对象也经常被叫做原生对象或内部对象,包含Global和Math在内的内置对象在《JavaScript高级程序设计》中也被叫做单体内置对象。很多时候,干脆也会直接把本地对象和内置对象统称为“内置对象“,也就是除了宿主对象,其他的都是ECMAScript的内置对象。
标准内置对象分类
值属性
这些全局属性返回一个简单值,这些值没有自己的属性和方法。
- Infinity
- NaN
- undefined
- globalThis
函数属性
全局函数可以直接调用,不需要在调用时指定所属对象,执行结束后会将结果直接返回给调用者。
- eval()
- uneval()
- isFinite()
- isNaN()
- parseFloat()
- parseInt()
- decodeURI()
- decodeURIComponent()
- encodeURI()
- encodeURIComponent()
基本对象
基本对象是定义或使用其他对象的继承。基本对象包括一般对象、函数对象和错误对象。
- Object
- Function
- Boolean
- Symbol
错误对象
错误对象是一种特殊的基本对象。它们拥有基本的Error类型,同时也有多种具体的错误类型。
- Error
- AggregateError
- EvalError
- InternalError
- RangeError
- ReferenceError
- SyntaxError
- TypeError
- URIError
数字和日期对象
用来表示数字、日期和执行数字计算的对象。
- Number
- BigInt
- Math
- Date
字符串
用来表示和操作字符串的对象。
- String
- RegExp
可索引的集合对象
表示按照索引值来排序的数据集合,包括数组和类型数组,以及类数组结构的对象。
- Array
- Int8Array
- Unit8Array
- Unit8ClampedArray
- Int16Array
- Unit16Array
- Int32Array
- Unit32Array
- Float32Array
- Float64Array
- BigInt64Array
- BigUnit64Array
使用键的集合对象
这些集合对象在存储数据时会使用到键,包括可迭代的Map和Set,支持按照插入顺序来迭代元素。
- Map
- Set
- WeakMap
- WeakSet
结构化数据
用来表示和操作结构化的缓冲区数据,或使用JSON编码的数据。
- ArrayBuffer
- SharedArrayBuffer
- Atomics
- DataView
- JSON
控制抽象对象
空间抽象可以帮助构造代码,尤其是异步代码(例如,不使用深度嵌套的回调)。
- Promise
- Generator
- GeneratorFunction
- AsyncFunction
反射
- Reflect
- Proxy
国际化
ECMAScript核心的附加功能,用于支持多语言处理。
- Intl
- Intl.Collator
- Intl.DateTimeFormat
- Intl.ListFormat
- Intl.NumberFormat
- Intl.PluralRules
- Intl.RelativeTimeFormat
- Intl.Local
WebAssembly
- WebAssembly
- WebAssembly.Module
- WebAssembly.Instance
- WebAssembly.Memory
- WebAssembly.Table
- WebAssembly.CompileError
- WebAssembly.LinkError(en-US)
- WebAssembly.RuntimeError
其他
- arguments