JavaScript 标准内置对象
JavaScript 标准内置对象或称全局的对象(global objects)不要和 全局对象(global object)混淆。这里说的全局的对象是说在全局作用域里的对象,全局作用域包含了全局对象的属性,还有它可能继承来的属性。
JavaScript 标准内置对象的分类:
1. 值属性(Infinity、NaN、undefined、null 字面量、globalThis)这些全局属性返回一个简单值,而且这些值没有自己的属性和方法。
2. 函数属性(eval()、uneval() 、isFinite()、isNaN()、parseFloat()、parseInt()、decodeURI()、decodeURIComponent()、encodeURI()、encodeURIComponent()、escape() 、unescape())全局函数可以直接调用,不需要在调用时指定所属对象,执行结束后会将结果直接返回给调用者。
3. 基本对象(Object、Function、Boolean、Symbol、Error、EvalError、InternalError、RangeError、ReferenceError、SyntaxError、TypeError、URIError)基本对象是定义或使用其他对象的基础。基本对象包括一般对象、函数对象和错误对象。
4. 数字、数学和日期对象(Number、BigInt、Math、Date)用来表示数字、执行数学计算和日期的对象。
5. 字符串和正则式对象(String、RegExp)用来表示和操作字符串的对象。
6. 可索引的数组对象(Array、Int8Array、Uint8Array、Uint8ClampedArray、Int16Array、Uint16Array、Int32Array、Uint32Array、Float32Array、Float64Array、BigInt64Array、BigUint64Array)这些对象表示按照索引值来排序的数据集合,包括数组和类型数组,以及类数组结构的对象。
7. 使用键的集合对象(Map、Set、WeakMap、WeakSet)这些集合对象在存储数据时会使用到键,支持按照插入顺序来迭代元素。
8. 构化数据(ArrayBuffer、SharedArrayBuffer 、Atomics 、DataView、JSON)这些对象用来表示和操作结构化的缓冲区数据,或使用 JSON (JavaScript Object Notation)编码的数据。
9. 控制抽象对象(Promise、Generator、GeneratorFunction、AsyncFunction )
10. 反射(Reflect、Proxy)
11. 国际化(Intl、Intl.Collator、Intl.DateTimeFormat、Intl.ListFormat、Intl.NumberFormat、Intl.PluralRules、Intl.RelativeTimeFormat、Intl.Locale)为了支持多语言处理而加入ECMAScript的对象。
12. WebAssembly(WebAssembly、WebAssembly.Module、WebAssembly.Instance、WebAssembly.Memory、WebAssembly.Table、WebAssembly.CompileError、WebAssembly.LinkError、WebAssembly.RuntimeError)
13. 其他(arguments)
以标准内置数字对象Number为例,简单说明构造函数、属性和方法。Number对象是数值对应的包装对象,可以作为构造函数使用,也可以作为工具函数使用。作为构造函数时,它用于生成值为数值的对象;作为工具函数时,它可以将任何类型的值转为数值。其构造函数、属性和方法如下图: