JavaScript中内置对象分类总结

JavaScript内置对象可分为多种类型:

  1. 原始值包装对象(String/Number/Boolean等);
  2. 集合对象(Array/Map/Set等);
  3. 日期时间对象Date;
  4. 数学计算对象Math;
  5. 文本处理对象RegExp;
  6. 结构化数据处理对象JSON;
  7. 控制抽象对象(Promise/Generator等);
  8. 错误处理对象(Error及其子类);
  9. 反射代理对象(Reflect/Proxy);
  10. 国际化对象Intl;
  11. 全局对象(console/globalThis等)。

这些内置对象提供了JavaScript的核心功能,涵盖数据处理、数学运算、异步编程等常见开发需求,通过其特有的方法和属性帮助开发者高效完成各种编程任务。


JavaScript 中的内置对象

JavaScript 提供了丰富的内置对象,可以分为以下几大类:


一、原始值包装对象

这些是原始类型的对象包装器:

  • String - 字符串操作

    javascript 复制代码
    new String('hello')
    'hello'.length  // 自动包装
  • Number - 数字操作

    javascript 复制代码
    new Number(123)
    Number.MAX_VALUE
  • Boolean - 布尔值操作

    javascript 复制代码
    new Boolean(true)
  • BigInt - 大整数

    javascript 复制代码
    BigInt(9007199254740991)
  • Symbol - 唯一标识符

    javascript 复制代码
    Symbol('description')

二、集合对象

  • Object - 所有对象的基类

  • Array - 数组操作

  • Map - 键值对集合

  • Set - 值的集合(无重复)

  • WeakMap - 弱引用版本的 Map

  • WeakSet - 弱引用版本的 Set

  • TypedArray - 类型化数组(如 Int8Array, Uint8Array 等)


三、日期和时间

  • Date - 日期和时间操作

    javascript 复制代码
    new Date()
    Date.now()

四、数学计算

  • Math - 数学常量和函数(静态对象)

    javascript 复制代码
    Math.PI
    Math.random()
    Math.floor()

五、文本处理

  • RegExp - 正则表达式

    javascript 复制代码
    new RegExp('pattern', 'flags')
    /pattern/flags

六、结构化数据

  • JSON - JSON 解析和序列化

    javascript 复制代码
    JSON.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 对象

这个表格结构清晰,便于快速查阅和比较各个内置对象的用途和特性。

相关推荐
我会冲击波3 小时前
vibe coding 一个多月,我把 Claude Code + Pi 做成了桌面 IDE,还给它移植了 VS Code 的编辑体验
前端·javascript·后端
JimmtButler4 小时前
从 Java 到 JS:我终于把闭包想明白了
javascript·后端
常宇佳4 小时前
vue3 实战系列之无法识别vue组件
前端·javascript·vue.js
全栈项目管理程序猿4 小时前
ArcGIS JS 基础教程(12):视图截图 takeScreenshot
javascript
小棉花的ai跨境之旅4 小时前
Codex 子 Agent 分工实战:Sol 当军师、Luna 当搬砖工,单任务成本压到 $0.61
javascript
daols885 小时前
vue 实现基于 vxe-table 构建多维度产品对比表
前端·javascript·vue.js
前端 贾公子5 小时前
第08章:中间件(5)
服务器·前端·javascript
二级小助手6 小时前
二级Web前端选择题高频真题20道与考场避坑笔记
javascript·css3·html5·web前端·计算机二级·二级web·web真题
前端小卡拉7 小时前
用了大半年 AI 编程工具,我才搞懂 Skill 到底是什么
前端·javascript
郭邯7 小时前
用 Intl.DateTimeFormat 手写一个时区转换器,顺便聊聊我和 AI 结对编程的日常
前端·javascript