以下哪些是javascript的全局函数:( )
A.escape
B.parseFloat
C.eval
D.setTimeout
E.alert
JavaScript 全局对象参考手册
这一题的答案是ABC,为什么的?
那,我们先从window说起,看完了也许大家就明白了。
如同很多常用对象一样window也不是javascript定义的。。。。
JavaScript标准规定要有一个global对象,作为全局对象。
从标准的角度,global对象是对开发者不可见的。
而在浏览器的host环境,提供了一个window = [[global]]. 所以初始化在[[global]] (注意我用[[]]表示它对外不可见,属于底层的对象)上的函数、属性都可以用window去访问。
你可以这样实验:window.window.window.window.window
它是一个自引用。
它不属于JavaScript语言内的原生方法。JS基本的,就是这些eval/Object/String/parseFloat等等等等.... 然后放在浏览器中,浏览器提供一些DOM操作的方法对象,比如window, cookie, document等等。放在NodeJS里,提供了一些File, Request等文件处理的方法。这些是host宿主环境提供的。并不是js原生的方法。
window是BOM顶级对象,document是DOM的顶级对象,结论是BOM包含DOM
window而已不是DOM,[[global]].window = [[global]]的自引用而已。好吧,我说的不仔细。
其实这个题回答ABC,ABCDE都可以。因为毕竟题目没说明必须是JS原生的全局函数。