请指出JavaScript宿主对象和原生对象的区别?
                                             参考答案:
                                         
                                        在JavaScript中,对象是由属性和方法组成的。这些对象可以分为两类:宿主对象和原生对象。
原生对象(Native Objects)
原生对象是JavaScript语言本身提供的对象,它们不依赖于任何特定的宿主环境。这意味着无论在浏览器、Node.js还是在其他任何支持JavaScript的环境中,这些对象都是可用的。原生对象包括:
- 基础对象:如 
Object、Function、Array、String、Number、Boolean、Null、Undefined、Symbol(ES6引入)等。 - 全局对象:如 
Math、JSON、Date、RegExp等。 - 错误对象:如 
Error、TypeError、ReferenceError、SyntaxError等。 
宿主对象(Host Objects)
宿主对象是由JavaScript运行环境(或宿主)提供的对象,这些对象不是JavaScript语言规范的一部分,而是由特定的JavaScript运行环境(如浏览器)提供的。因此,不同的宿主环境可能会有不同的宿主对象。例如,在浏览器中,常见的宿主对象包括:
- 窗口对象(Window):它代表了浏览器窗口或全局作用域。它有很多属性和方法,如 
alert()、prompt()、confirm()、setTimeout()、clearTimeout()等。 - 文档对象(Document):它代表了加载在窗口中的HTML文档。它有很多属性和方法,用于操作DOM(Document Object Model)。
 - 位置对象(Location):它包含了有关当前URL的信息,并允许网页重定向。
 - 历史对象(History):它允许脚本与浏览器的历史记录交互。
 
此外,浏览器还提供了很多其他的宿主对象,如 navigator、screen、console 等。
总的来说,原生对象是JavaScript语言本身的一部分,而宿主对象则是由特定的JavaScript运行环境提供的。因此,原生对象在所有环境中都是一致的,而宿主对象则可能因环境而异。