浏览器环境
本文于471天之前发表,文中内容可能已经过时。如有疑问,欢迎在github中给我留言(用户名:zhangyan123)。
浏览器环境

我们所说的内建方法与内建对象都可以理解为是全局对象的方法与成员。我们之后将全局对象称为head对象,举例子来说,node.js中的head对象是global对象,而浏览器中的head对象则是window,在console控制台中打印window可以看到全局的方法和属性,从图中可以看出window对象中会包含js原生对象,会包含DOM对象集合,同时还会包含一个可访问浏览器和计算机屏幕的对象集合。
BOM能做哪些事情?
- navigator属性:访问浏览器及其功能信息 eg:window.navigator.userAgent
- 浏览器提供的控制台提供了遍历的对象检索功能,只需输入想要查询的对象便可以查看该对象全部的成员(对于本节内容有不详之处打印大发伺候)
console.dir() - location属性:用于存储当前载入页面URL信息的对象
- history属性:属性允许用户以有限权限操作同一个浏览器回话(session)中已访问的页面。
- frames属性为我们提供访问当前页所有框架的集合(一个类数组)
- screen属性提供的是操作浏览器意外环境的句柄,可访问PC屏幕信息
- BOM中的全局方法:
var win=window.open(URL,target,’width:123,height:123,resizable:yes,status:no’)//status
用于设置状态栏可见性,open方法返回打开的窗口句柄win,关闭及操作时使用win为当前环境,eg:win.close();- 其他:moveTo()、moveBy()、alert()、prompt)()、confirm()
- window.setTimeout()及setInterval()在程序中经常会出现始料未及的结果,首先这两个函数的参数环境是eval环境,在使用时延时应尽量封装好回调函数直接引用函数名,而非在参数中使用可执行的字符串。由于浏览器处理事件是有队列的,时延间隔到了回调函数也要按秩序进队等待被调用,因此导致的时间不准确是应该在预料之中的。