【读书笔记】JavaScript|【读书笔记】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 获取和设置属性
【【读书笔记】JavaScript|【读书笔记】JavaScript DOM编程艺术 (第2版)】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规范,浏览器每次从同一个域名中最多只能同时下载两个文件。
尽量把所有标签都放到文档的末尾,