DOM编程
文档对象模型,包括document自己和页面上的各类标签元素。DOM是访问和控制文档及标签元素的API,经过DOM能够查找、修改、添加、删除标签元素,还能够添加事件监听函数以响应页面上的各类事件。H5新增了一些DOM API(如querySelector)在一程度上加强了DOM,但实际开发中,使用jQuery进行开发仍是很是广泛的。由于jQuery不只提供了强大的DOM操做能力,并且可以解决浏览器兼容性问题。此外jQuery还提供了Ajax请求、动画等实用功能,还提供了Callbacks、Deferred等高级API。浏览器
BOM函数
浏览器对象模型,包括window、location、history、navigator等动画
window对象是全局做用域,window对象会随页面的加载或刷新而重置,即全局做用域生命周期相关的内容都会被销毁。window对象提供了窗口相关的API,用于控制窗口及窗口与窗口之间的关系。window对象还提供了XHR、setTimeout、alert、WebWorker等各类编程接口和功能支持。实际上从window对象出发能够访问几乎全部的Web API。url
location提供了与url相关的API,经过location提供的属性能够获取url的各个组成部分。location还提供了对页面进行导航控制的基本功能,如对href赋值、assign()、reload()、replace()方法等。值得注意的是location提供了hashchange事件,能够监听hash fragment的变化,这对于单页Web应用中的路由机制提供了重要的支持。spa
history对象提供了浏览历史记录控制功能,如back()、forward()、go()等,H5还新增了状态相关的API:state、pushState、replaceState配合window的popstate事件能够为路由机制提供重要的支持。操作系统
navigator对象提供了浏览器和操做系统信息的描述,如userAgent、H5还在navigator中加入了不少设备访问功能,如geolocation、battery、vibrate等(浏览器目前支持不太好)。对象