BOM学习
前言
JavaScript由三个核心部分组成,分别是ECMAScript、BOM、DOM。
浏览器对象模型BOM
BOM提供了很多访问浏览器窗口的接口,包括window对象、location对象、navigator对象、history对象。
window对象
我的上一篇博客记录了关于setInterval和setTimeout的使用,它们都是window对象的方法。
- setTimeout(arg0, arg1) 超时调用
- setInterval(arg0, arg1) 间歇调用
它们都接受两个参数,第一个是要执行的代码,第二个是以毫秒形式表示的时间。
示例:
第二个参数表示等待的时间毫秒数,但经过该时间后指定的代码不一定会执行。JavaScript是一个单线程的解释器,因此一定时间内只能执行一段代码。为了控制要执行的代码,就有一个JavaScript任务队列。这些任务会按照将它们添加到队列的顺序执行。setTimeout()的第二个参数告诉JavaScript在过多长时间把当前任务添加到队列中。如果队列是空的,那么添加的代码会立即执行;如果队列不是空的,那么它就要等前面的代码执行完了以后再执行。
调用setTimeout()会返回一个ID,通过调用clearTimeout(),并将ID作为参数,可以取消未执行的调用计划。
setInterval()的返回参数同样返回ID,通过clearInterval(),将ID作为参数,来取消未执行的间歇调用。
在使用这两个函数时我们最需要学到的就是setTimeout()和setInterval()之间的相互转化。那就是在使用setTimeout()的时候采用递归调用自己的方式来实现setInterval()的效果。
最后避免使用间歇调用,推荐超时调用。
navigator对象
用于识别客户端浏览器,以下是常用属性:
- cookieEnabled,表示cookie是否启用。
- onLine,表示浏览器是否连接到了因特网。
- platform,浏览器所在的系统平台。
- plugins,浏览器安装的插件信息。
- userAgent,浏览器的用户代理字符串。
- 等。
参考:《JavaScript高级程序设计》