html 标准
css 标准
与 javascript 有关
ECMA 标准
http://ecma-international.org/publications/standards/Ecma-262-arch.htm
BOM没有标准
BOM 没有标准,但可以在 MDN 里的 window,因为BOM 的核心对象是 window
BOM
ECMAScript 是 JavaScript 的核心,但如果要在 Web 中使用 JavaScript,那么 BOM(浏览器对象模型)
则无疑才是真正的核心。BOM 提供了很多对象,用于访问浏览器的功能,这些功能与任何网页内容无关。多年来,
缺少事实上的规范导致 BOM 有很多问题,因为浏览器提供商会按照各自的想法随意去扩展它。W3C 为了把浏览器中
JavaScript 最基本的部分标准化,已经将 BOM 的主要方面纳入了 HTML5 的规范中。
window对象
BOM 的核心对象是 window,它表示浏览器的一个实例。在浏览器中,window 对象有双重角色,
它既是通过 JavaScript 访问浏览器窗口的一个接口,又是 ECMAScript 规定的 Global 对象。
这意味着在网页中定义的任何一个对象、变量和函数,都以 window 作为其 Global 对象,因此有权访问
isNaN()、isFinite()、parseInt()、parseFloat() 等方法。
全局变量与windows对象属性的差别
抛开全局变量会成为 window 对象的属性不谈,定义全局变量与在 window 对象上直接定义属性还是有一点差别:
全局变量不能通过 delete 运算符删除,而直接在 window 对象上的定义的属性可以
window.open()/close方法
open方法的四个参数:可以接收4个参数:要加载的URL、窗口目标、一个特性字符串、
一个表示新页面是否取代浏览器历史记录中当前加载页面的布尔值
后两个参数有很大的兼容性问题
1 | close() 方法仅适用于通过 window.open() 打开的弹出窗口。对于浏览器的主窗口,如果没有得到用户的允许是不能关闭它的。 |
定时器
// 不建议传递字符串
setTimeout("console.log(‘Hello world!’) ", 1000);
1 | // 推荐的调用方式 |
navigator对象
location对象
location 对象是很特别的一个对象,因为它既是 window 对象的属性,也是 document 对象的属性;
换句话说,window.location 和 document.location 引用的是同一个对象。
history 对象
DOM 标准
DOM 规范
正如W3C所定义的,DOM是独立于平台和语言的接口,该接口为程序和脚本提供了对文档的内容、结构和样式
的动态获取和更新的功能。
1 | DOM的出现来自对动态页面的需求,先有DOM的实现(Netscape DOM0),再有各个厂商对DOM实现规范的需求, |
DOM事件
两种绑定方式
1 | (DOM0)1.obj.onclick = fn; |
1 | document.attachEvent('onclick', fn2); |
同步this
1 | function bind(obj, evname, fn) { |
两种绑定方式的区别
1 | 取消冒泡的手段:event.cancelBubble = true; |
1 | 第二种: |
事件解绑
1 | DOM0:想解除事件就相当简单了,只需要再注册一次事件,把值设成null |
事件流
1 | 单击蓝色框后,开始事件捕获阶段: |
总结
1 | onclick形式:冒泡 |
DOM 细节
1. 节点及其类型:
1). 元素节点
2). 属性节点: 元素的属性, 可以直接通过属性的方式来操作.
3). 文本节点: 是元素节点的子节点, 其内容为文本.
4). documnet
1 | 2. 在 html 文档的什么位置编写 js 代码? |
1 | 获取指定节点的所有子节点.一共有三种方式: |
1 | 6. 获取文本节点: |
1 | 7. 节点的属性: |
1 | 8. 创建一个元素节点: |
1 | 13. 删除节点: |