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 对象

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

相关推荐
霍理迪2 小时前
Vue—条件渲染与循环渲染
前端·javascript·vue.js
zhen_hong2 小时前
ReactAgent原理
android·java·javascript
小J听不清2 小时前
CSS 内边距(padding)全解析:取值规则 + 表格实战
前端·javascript·css·html·css3
zhangjikuan892 小时前
在 ArkTS 中,Promise 的使用比 TypeScript 更严格(必须显式指定泛型类型)
前端·javascript·typescript
Highcharts.js2 小时前
React 如何实现大数据量图表(性能优化指南)
前端·javascript·react.js·信息可视化·集成·highcharts
向上的车轮2 小时前
TypeORM——基于 TypeScript/JavaScript 的对象关系映射(ORM)框架
javascript·typescript·typeorm
程序员小寒2 小时前
JavaScript设计模式(一):单例模式实现与应用
javascript·单例模式·设计模式
Dxy12393102162 小时前
JS如何把数据添加到列表中
前端·javascript·vue.js
御形封灵2 小时前
基于canvas的路网编辑交互
开发语言·javascript·交互