1. 本地对象
1.1 什么是本地对象?
本地对象是由 JavaScript 引擎本身提供的对象,它们不依赖于任何外部环境或宿主环境。换句话说,本地对象是 JavaScript 语言的一部分,提供了最基本的功能,能够在任何支持 JavaScript 的环境中使用。
1.2 本地对象的种类
- Object:所有对象的基类,用于创建和操作对象。
- Array:用于表示和操作数组。
- Function:函数对象,包含 JavaScript 函数的定义与调用。
- String:字符串类型对象,提供字符串操作的相关方法。
- Number:用于数字操作和数学计算。
- Boolean:用于逻辑值的表示。
- Date:日期和时间对象,用于处理日期和时间。
- RegExp:正则表达式对象,用于文本模式匹配。
- Error:错误对象,用于错误处理。
1.3 本地对象的特点
- 本地对象是 JavaScript 引擎实现的一部分,不依赖于特定的运行环境。
- 它们的行为和功能在所有 JavaScript 引擎中是相同的,具有高度一致性。
- 本地对象通常用于处理数据、控制流程和执行基本操作,如数学计算、字符串处理等。
1.4 本地对象的应用
例如,Array
对象是 JavaScript 中最常用的对象之一,它提供了丰富的数组操作方法,如 .push()
、.pop()
、.map()
和 .filter()
等。Date
对象则可以帮助开发者在不同时间点间进行计算,提供对日期的格式化和比较功能。
2. 内置对象
2.1 什么是内置对象?
内置对象是 JavaScript 中由标准定义的对象,它们为 JavaScript 程序提供了一些常见的工具和常量。内置对象通常用于执行一些基本的任务,例如 JSON 操作、数学计算、值转换等。
2.2 内置对象的种类
内置对象包括:
- Math :提供数学常量和函数,如
Math.PI
、Math.sin()
、Math.random()
。 - JSON :提供用于处理 JSON 数据的功能,如
JSON.parse()
和JSON.stringify()
。 - Infinity 和 NaN:表示特殊的数字值,分别代表正无穷大和非数值。
- Symbol:一种新的原始数据类型,表示独一无二的标识符。
- Reflect:提供拦截 JavaScript 操作的能力,用于操作对象属性、函数调用等。
2.3 内置对象的特点
- 内置对象是 JavaScript 的核心组成部分,通常用于处理数据类型转换、数学计算等基本功能。
- 它们是 JavaScript 标准的一部分,因此具有较高的兼容性。
- 内置对象通常提供一些静态方法和常量,帮助开发者简化开发工作。
2.4 内置对象的应用
例如,Math
对象提供了许多数学计算方法,可以用来执行常见的数学任务,比如生成随机数、计算三角函数、进行数值求幂等。JSON
对象则在处理 Web 开发中非常重要,它能帮助我们在客户端与服务器之间交换 JSON 数据。
3. 宿主对象
3.1 什么是宿主对象?
宿主对象是由 JavaScript 运行的宿主环境提供的对象,它们用于实现 JavaScript 与宿主环境的交互。例如,在浏览器环境中,宿主对象可能包括 window
、document
、localStorage
等对象;在 Node.js 环境中,宿主对象可能包括 fs
、http
和 process
等模块。
3.2 宿主对象的种类
浏览器环境:
对象 | 用途 | 示例代码 |
---|---|---|
window |
浏览器全局对象 | window.location.href = 'https://...' |
document |
DOM操作与页面元素访问 | document.getElementById('app') |
XMLHttpRequest |
发送HTTP请求 | let xhr = new XMLHttpRequest() |
localStorage |
本地数据存储 | localStorage.setItem('key', 'value') |
Node.js环境:
对象 | 用途 | 示例代码 |
---|---|---|
process |
进程管理与环境变量 | process.env.NODE_ENV |
fs |
文件系统操作 | fs.readFile('file.txt', 'utf8', ...) |
http |
创建HTTP服务器 | http.createServer((req, res) => ...) |
Buffer |
二进制数据处理 | Buffer.from('Hello') |
3.3 宿主对象的特点
- 宿主对象是特定宿主环境(如浏览器或 Node.js)提供的对象,功能强大且环境特定。
- 它们使得 JavaScript 能够与宿主环境交互,执行诸如 DOM 操作、网络请求等任务。
- 不同宿主环境的宿主对象在功能和表现上有所不同。
3.4 宿主对象的应用
例如,在浏览器中,document
对象是进行 DOM 操作的核心对象,它可以帮助我们访问网页元素,修改页面内容,响应用户事件等。在 Node.js 中,fs
模块允许我们读写文件,而 http
模块则帮助我们创建 HTTP 服务器和发送请求。
4. 本地对象、内置对象、宿主对象的区别
对象类型 | 定义 | 示例 | 特点 |
---|---|---|---|
本地对象 | 由 JavaScript 引擎实现,独立于宿主环境。 | Object , Array , Date |
基础对象,不依赖于宿主环境,行为一致。 |
内置对象 | JavaScript 标准的一部分,提供常用功能。 | Math , JSON , Symbol |
提供工具类方法和常量,通常用于处理数据。 |
宿主对象 | 由宿主环境(如浏览器或 Node.js)提供的对象。 | window , document , fs , http |
与宿主环境交互的对象,功能与宿主环境密切相关。 |