# ECMAScript 对象类型

在 ECMAScript 中，所有对象并非同等创建的。

一般来说，可以创建并使用的对象有三种：本地对象、内置对象和宿主对象。

## 本地对象

ECMA-262 把本地对象（native object）定义为“独立于宿主环境的 ECMAScript 实现提供的对象”。简单来说，本地对象就是 ECMA-262 定义的类（引用类型）。它们包括：

- Object
- Function
- Array
- String
- Boolean
- Number
- Date
- RegExp
- Error
- EvalError
- RangeError
- ReferenceError
- SyntaxError
- TypeError
- URIError

### 相关页面

JavaScript 高级教程：ECMAScript 引用类型

JavaScript 高级教程：ECMAScript Function 类

JavaScript 参考手册：Array 对象

JavaScript 参考手册：Boolean 对象

JavaScript 参考手册：Date 对象

JavaScript 参考手册：Number 对象

JavaScript 参考手册：String 对象

JavaScript 参考手册：RegExp 对象

## 内置对象

ECMA-262 把内置对象（built-in object）定义为“由 ECMAScript 实现提供的、独立于宿主环境的所有对象，在 ECMAScript 程序开始执行时出现”。这意味着开发者不必明确实例化内置对象，它已被实例化了。ECMA-262 只定义了两个内置对象，即 Global 和 Math （它们也是本地对象，根据定义，每个内置对象都是本地对象）。

### 相关页面

JavaScript 参考手册：Global 对象

JavaScript 参考手册：Math 对象

## 宿主对象

所有非本地对象都是宿主对象（host object），即由 ECMAScript 实现的宿主环境提供的对象。

所有 BOM 和 DOM 对象都是宿主对象。

### 相关页面

JavaScript 高级教程：JavaScript 实现

W3School 参考手册：JavaScript 参考手册

W3School 教程：HTML DOM 教程