JavaScript的内置对象、原生对象、宿主对象分别指的是什么?

1、内置对象

由ECMAScript实现提供的、独立于宿主环境的所有对象。
内置对象在引擎初始化阶段就已经被创建好。
ECMA-262只定义了两个内置对象,即Global和Math。他们也是本地对象,即内置对象其实是本地对象的一种。

2、原生对象

ECMA-262将本地对象定义为独立于宿主环境的ECMAScript实现提供对象。
除了内置对象外,原生对象还包括了一些在运行过程中创建的对象。
本地对象包括:Object、Function、Array、String、Number、Boolean、Date、RegExp、Error、EvalError、RangeError、ReferenceError、SyntaxError、TypeError、URLError
由此可以看出,本地对象就是ECMA定义的类。

3、宿主对象

ECMAScript中的宿主就是我们网页所运行的环境,即浏览器和操作系统。
所有的非本地对象都是宿主对象,即由ECMAScript实现的宿主环境提供的对象。
所有的DOM和BOM都是宿主对象。因为其对于不同的宿主环境所展示的内容是不一样的。