- 全局变量不能通过 delete 操作符删除,而直接在 window 上定义的属性可以。
1 var age = 22;2 window.color = "red";3 4 // IE < 9下以下情况都会抛出错误5 6 delete age; //return false7 8 delete window.color; //return true
- 尝试访问未声明的变量会抛出错误,但是通过查询 window 对象,可以知道某个可能未声明的对象是否存在。
- 如果页面中包含框架,则每个框架都拥有自己的 window 对象,并且保存在frames集合中。在frames集合中,可以通过数值索引(从0开始,从左到右,从上到下)或者框架名称来访问相应的window对象。
1 window.frames[0];2 window.frames["name"];3 top.frames[0];4 top.frames["name"];5 frames[0];6 frames["name"];
View Code
- 除非最高层窗口是通过 window.open() 打开的,否则其 window 对象的name属性不会包含任何值。这里的最高层窗口指的是包含所有框架的那个页面,因为它并没有初始化name属性,所以值为空字符串。注意:top != top.frames[0]
- 由于每个 window 对象都包含原生类型的构造函数,因此每个框架都有一套自己的构造函数,这些构造函数一一对应,但并不相等。
原标题:JavaScript高级程序设计 之 BOM
关键词:JavaScript