1、global对象(全局对象)
《JS高级程序设计》中谈到,global对象可以说是ECMAScript中对特别的一个对象了,因为不管你从什么角度上看,这个对象都是不存在的。从某种意义上讲,它是一个终极的“兜底儿对象”,换句话说呢,就是不属于任何其他对象的属性和方法,最终都是它的属性和方法。我理解为,这个global对象呢,就是整个JS的“老祖宗”,找不到归属的那些“子子孙孙”都可以到它这里来认祖归宗。所有在全局作用域中定义的属性和函数,都是global对象的属性和方法,比如isNaN()、parseInt()以及parseFloat()等,实际都是它的方法;还有就是常见的一些特殊值,如:NaN、undefined等都是它的属性,以及一些构造函数Object、Array等也都是它的方法。总之,记住一点:global对象就是“老祖宗”,所有找不到归属的就都是它的。
2、window对象
前面说了global对象是“老祖宗”,那有人该问了,你把window对象置于何地呢?对,javascript这门语言现在这么红火很大部分原因是因为W3C将它作为写页面的官方脚本语言,但别忘了js它不仅仅可以用来写页面,也就是不仅仅