JavaScript内置对象可分为多种类型:
- 原始值包装对象(String/Number/Boolean等);
- 集合对象(Array/Map/Set等);
- 日期时间对象Date;
- 数学计算对象Math;
- 文本处理对象RegExp;
- 结构化数据处理对象JSON;
- 控制抽象对象(Promise/Generator等);
- 错误处理对象(Error及其子类);
- 反射代理对象(Reflect/Proxy);
- 国际化对象Intl;
- 全局对象(console/globalThis等)。
这些内置对象提供了JavaScript的核心功能,涵盖数据处理、数学运算、异步编程等常见开发需求,通过其特有的方法和属性帮助开发者高效完成各种编程任务。
JavaScript 中的内置对象
JavaScript 提供了丰富的内置对象,可以分为以下几大类:
一、原始值包装对象
这些是原始类型的对象包装器:
-
String - 字符串操作
javascriptnew String('hello') 'hello'.length // 自动包装 -
Number - 数字操作
javascriptnew Number(123) Number.MAX_VALUE -
Boolean - 布尔值操作
javascriptnew Boolean(true) -
BigInt - 大整数
javascriptBigInt(9007199254740991) -
Symbol - 唯一标识符
javascriptSymbol('description')
二、集合对象
-
Object - 所有对象的基类
-
Array - 数组操作
-
Map - 键值对集合
-
Set - 值的集合(无重复)
-
WeakMap - 弱引用版本的 Map
-
WeakSet - 弱引用版本的 Set
-
TypedArray - 类型化数组(如 Int8Array, Uint8Array 等)
三、日期和时间
-
Date - 日期和时间操作
javascriptnew Date() Date.now()
四、数学计算
-
Math - 数学常量和函数(静态对象)
javascriptMath.PI Math.random() Math.floor()
五、文本处理
-
RegExp - 正则表达式
javascriptnew RegExp('pattern', 'flags') /pattern/flags
六、结构化数据
-
JSON - JSON 解析和序列化
javascriptJSON.parse() JSON.stringify() -
ArrayBuffer - 二进制数据缓冲区
-
SharedArrayBuffer - 共享内存缓冲区
-
DataView - 缓冲区视图
JSON.parse() JSON.stringify()
特性 JSON.parse()JSON.stringify()主要功能 将 JSON 字符串 解析为 JavaScript 对象 将 JavaScript 对象 转换为 JSON 字符串 输入类型 字符串 (String) 对象、数组、基本类型 (Object, Array, Primitive) 输出类型 JavaScript 对象 (Object, Array, etc.) 字符串 (String) 方向 反序列化 (Deserialization): String → Object 序列化 (Serialization): Object → String 常见用途 接收服务器响应数据、读取配置文件、从 localStorage 获取数据 发送数据给服务器、将数据存入 localStorage、打印日志 语法示例 const obj = JSON.parse(jsonString);const str = JSON.stringify(obj);可选参数 reviver: 一个函数,用于在返回前转换/过滤结果1. replacer: 数组或函数,用于筛选/转换属性 2.space: 数字或字符串,用于格式化缩进错误处理 如果字符串格式无效,抛出 SyntaxError通常不会抛出错误(但会忽略无法序列化的值,如 undefined,function,symbol)循环引用 不涉及(输入是纯文本) 如果对象存在循环引用,抛出 TypeError: Converting circular structure to JSON特殊值处理 解析 null,true,false, 数字, 字符串等标准 JSON 值undefined,function,symbol会被忽略(对象中)或转为null(数组中);NaN,Infinity转为null日期对象 解析后仍然是字符串(需手动转为 Date对象)自动调用 .toJSON()方法,转为 ISO 8601 格式的字符串
七、控制抽象对象
-
Promise - 异步编程
-
Generator - 生成器函数
-
GeneratorFunction - 生成器函数构造器
-
AsyncFunction - 异步函数
-
Iterator - 迭代器
-
Iterable - 可迭代对象
八、错误处理
-
Error - 基础错误对象
-
EvalError
-
RangeError
-
ReferenceError
-
SyntaxError
-
TypeError
-
URIError
-
AggregateError
-
九、反射和代理
-
Reflect - 反射 API
-
Proxy - 代理对象
十、国际化对象
-
Intl - 国际化 API 的命名空间
-
Intl.Collator
-
Intl.DateTimeFormat
-
Intl.ListFormat
-
Intl.NumberFormat
-
Intl.PluralRules
-
Intl.RelativeTimeFormat
-
等等
-
十一、其他全局对象
-
globalThis - 全局 this
-
console - 控制台输出
-
decodeURI()/encodeURI() - URI 编解码
-
decodeURIComponent()/encodeURIComponent() - URI 组件编解码
-
eval() - 执行字符串代码
-
isFinite() - 判断有限数
-
isNaN() - 判断 NaN
-
parseFloat()/parseInt() - 字符串解析
-
undefined - 未定义值
-
null - 空值
使用示例
javascript
// 数组操作
const arr = [1, 2, 3];
arr.map(x => x * 2);
// Promise 异步
Promise.resolve('success')
.then(console.log);
// Map 和 Set
const map = new Map();
map.set('key', 'value');
const set = new Set([1, 2, 3]);
// 日期
const now = new Date();
console.log(now.toLocaleDateString());
// 正则表达式
const regex = /[a-z]+/g;
'hello'.match(regex);
// 数学计算
Math.floor(Math.random() * 100);
这些内置对象构成了 JavaScript 的核心功能,每个都提供了特定的方法和属性来帮助我们完成各种编程任务。
JavaScript 内置对象的分类总结表格:
| 类别 | 对象名称 | 描述 | 常用方法/属性示例 |
|---|---|---|---|
| 原始值包装对象 | String | 字符串操作 | length, charAt(), substring(), split() |
| Number | 数字操作 | toFixed(), toPrecision(), MAX_VALUE |
|
| Boolean | 布尔值操作 | toString(), valueOf() |
|
| BigInt | 大整数 | BigInt(), toString() |
|
| Symbol | 唯一标识符 | Symbol(), for(), keyFor() |
|
| 集合对象 | Object | 所有对象的基类 | keys(), values(), assign(), create() |
| Array | 数组操作 | map(), filter(), reduce(), push() |
|
| Map | 键值对集合 | set(), get(), has(), delete() |
|
| Set | 值的集合(无重复) | add(), has(), delete(), size |
|
| WeakMap | 弱引用版本的 Map | set(), get(), has(), delete() |
|
| WeakSet | 弱引用版本的 Set | add(), has(), delete() |
|
| TypedArray | 类型化数组 | Int8Array, Uint8Array, Float32Array 等 |
|
| 日期和时间 | Date | 日期和时间操作 | now(), getDate(), toLocaleDateString() |
| 数学计算 | Math | 数学常量和函数 | PI, random(), floor(), max(), sin() |
| 文本处理 | RegExp | 正则表达式 | test(), exec(), match(), replace() |
| 结构化数据 | JSON | JSON 解析和序列化 | parse(), stringify() |
| ArrayBuffer | 二进制数据缓冲区 | byteLength, slice() |
|
| SharedArrayBuffer | 共享内存缓冲区 | byteLength, slice() |
|
| DataView | 缓冲区视图 | getInt8(), setInt8(), getFloat32() |
|
| 控制抽象 | Promise | 异步编程 | then(), catch(), finally(), all() |
| Generator | 生成器函数 | next(), return(), throw() |
|
| GeneratorFunction | 生成器函数构造器 | function* 语法 |
|
| AsyncFunction | 异步函数 | async function 语法 |
|
| Iterator | 迭代器 | next(), Symbol.iterator |
|
| Iterable | 可迭代对象 | Symbol.iterator 方法 |
|
| 错误处理 | Error | 基础错误对象 | message, name, stack |
| EvalError | eval() 相关错误 | 继承自 Error | |
| RangeError | 范围错误 | 继承自 Error | |
| ReferenceError | 引用错误 | 继承自 Error | |
| SyntaxError | 语法错误 | 继承自 Error | |
| TypeError | 类型错误 | 继承自 Error | |
| URIError | URI 处理错误 | 继承自 Error | |
| AggregateError | 多个错误聚合 | 继承自 Error | |
| 反射和代理 | Reflect | 反射 API | apply(), construct(), get(), set() |
| Proxy | 代理对象 | new Proxy(target, handler) |
|
| 国际化 | Intl | 国际化命名空间 | DateTimeFormat, NumberFormat |
| Intl.Collator | 字符串比较 | compare() |
|
| Intl.DateTimeFormat | 日期时间格式化 | format() |
|
| Intl.ListFormat | 列表格式化 | format() |
|
| Intl.NumberFormat | 数字格式化 | format() |
|
| Intl.PluralRules | 复数规则 | select() |
|
| Intl.RelativeTimeFormat | 相对时间格式化 | format() |
|
| 全局对象/函数 | globalThis | 全局 this | 跨环境访问全局对象 |
| console | 控制台输出 | log(), error(), warn(), table() |
|
| decodeURI/encodeURI | URI 编解码 | decodeURI(), encodeURI() |
|
| decodeURIComponent/encodeURIComponent | URI 组件编解码 | decodeURIComponent(), encodeURIComponent() |
|
| eval() | 执行字符串代码 | eval('2 + 2') |
|
| isFinite() | 判断有限数 | isFinite(42) |
|
| isNaN() | 判断 NaN | isNaN(NaN) |
|
| parseFloat/parseInt | 字符串解析 | parseFloat('3.14'), parseInt('42') |
|
| undefined | 未定义值 | 原始值 | |
| null | 空值 | 原始值 |
快速参考表
| 使用场景 | 推荐的内置对象 |
|---|---|
| 字符串处理 | String, RegExp |
| 数组操作 | Array |
| 键值对存储 | Object, Map |
| 去重集合 | Set |
| 数学计算 | Math |
| 日期处理 | Date |
| 异步编程 | Promise |
| 错误处理 | Error 及其子类 |
| JSON 数据 | JSON |
| 国际化 | Intl 对象 |
| 二进制数据 | ArrayBuffer, TypedArray |
| 调试输出 | console |
| 对象拦截 | Proxy |
| 反射操作 | Reflect |
使用频率统计
javascript
高频使用:Object, Array, String, Number, Math, Date, JSON, Promise, console
中频使用:RegExp, Error, Map, Set, Symbol, BigInt
低频使用:WeakMap, WeakSet, TypedArray, Proxy, Reflect, Intl 对象
这个表格结构清晰,便于快速查阅和比较各个内置对象的用途和特性。