【读书笔记】JavaScript DOM编程艺术 (第2版)

第2章

2.4.1 比较操作符

1、大于(>)

2、小于(<)

3、大于或等于(>=)

4、小于或等于(<=)

判断是否在某一范围的比较,顺序无要求,如

if( num >= 5 && num <= 10 ) 与 if( num <= 10 && num >= 5 ) 写法都可

5、等于(==)

==(等于)容易与=(赋值)混淆,if(a=false)结果为false

==操作符并不严格相等,如:if(false=="")结果为true

6、不等于(!=)

7、全等(===)

8、不全等(!==)

第3章

3.4 节点

文本节点总是被包含在元素节点的内部。

getElementById(id),id值必须放在‘’(单引号)或“”(双引号)里,返回一个对象,特定元素节点。

typeof操作符可以判断类型(对象、方法、字符串、数值等)。

getElementsByTagName(tag),tag值必须放在‘’(单引号)或“”(双引号)里,返回一个数组,一组特定元素节点,注意拼写,加s。

getElementsByClassName(class),HTML5 DOM新增,返回一个数组,一组特定元素节点,注意拼写,加s。

3.5 获取和设置属性

getAttribute(attribute),只能通过元素节点对象调用,如果没有该属性,返回null值。

setAttribute(attribute,value),attribute、value值必须放在‘’(单引号)或“”(双引号)里。

第4章

4.4 节点

element.childNodes,返回数组,包含所有类型的节点(元素、文本、属性等)。

node.nodeType,获取该节点类型,1为元素节点,2为属性节点,3为文本节点。

node.nodeValue,获取节点的值,注意:document.getElementsByTagName("p")[0].nodeValue的值为null,因为

本身的nodeValue属性是一个空值,包含在

元素里的文本是

的第一个子节点,因此document.getElementsByTagName("p")[0].childNodes[0].nodeValue才能正确获取

的文本。

node.firstChild,等价于node.childNodes[0]。

node.lastChild,等价于node.childNodes[node.childNodes.length-1]。

第5章

5.4 分离JavaScript

可以通过element.event=action使事件脱离HTML文档,如

document.getElementById("a").onlick=function(){...};

5.5 向后兼容

使用对象检测方法时,一定要删掉方法名后的圆括号,如果不删掉,检测的是调用该方法得到的结果,无论方法是否存在。如

function sum(){var a=2,b=3;var sum=a+b;return sum;}

if(sum)表示检测方法sum是否存在,if(sum())则等价于if(5)。

5.6 性能考虑

把所有js脚本合并成一个脚本,可以减少加载页面时发送的请求数量。

根据HTTP规范,浏览器每次从同一个域名中最多只能同时下载两个文件。

尽量把所有

你可能感兴趣的:(【读书笔记】JavaScript DOM编程艺术 (第2版))