Document Object Model 文档对象模型:是一套对文档的内容进行抽象和概念化的方法。、
W3C对DOM的定义是:一个与系统平台和编程语言无关的接口,程序和脚本可以通过这个接口动态地访问和修改文档的内容、结构和样式。
建议在每条语句的末尾都加上一个分号
单行注释用//
多行注释用/*
允许直接对变量赋值而无需事先声明,但是提前声明变量是一种良好的编程习惯
变量和其他语法元素都是区分大小写的
不允许变量名中包含空格或标点符号($除外)
驼峰格式
javascript不需要进行类型声明,属于弱类型语言
在同一个脚本中字符串的引号保持一致(单引号,双引号)
布尔值不是字符串,千万不要把布尔值用引号括起来
如果在某个函数中使用了var,那个变量将被视为一个局部变量
反之,如果没有使用var,那个变量就将被视为一个全局变量
所以在定义一个函数时,一定要把它内部的变量全都明确地声明为局部变量,如果你总是在函数里使用var关键字来定义变量,就能避免任何形式的二义性隐患
三种对象类型
用户自定义对象
内建对象
宿主对象:由浏览器提供的对象
三种节点:元素节点、文本节点、属性节点
getElementById将返回一个对象,该对象对应着文档里的一个特定的元素节点
getElementByTagName和getElementsByclassName将返回一个对象数组,它们分别对应着文档里的一组特定的元素节点。
setAttribute做出的修改不会反映在文档本身的源代码里
DOM对页面内容进行刷新却不需要在浏览器里刷新页面
严格遵守“第1级DOM”能够让你避免与兼容性有关的任何问题
onclick="showPic(this); return false;"
nodeNodes 属性返回的数组包含所有类型的节点,而不仅仅是元素节点
连空格和换行符都会被解释为节点
元素节点的nodeType属性值是1
属性节点的nodeType属性值是2
文本节点的nodeType属性值是3
使用nodeValue属性来改变一个文本节点的值
node.childNodes[0] = node.firstChild
node.lastChild = node.childNodes.length-1
平稳退化:让访问者在他们浏览器不支持javascript的情况下仍能顺利地浏览你的网站,搜索引擎友好
从性能考虑,尽量少访问DOM和尽量减少标记
根据HTTP规范,浏览器每次从同一个域名中最多只能同时下载两个文件。考虑合并脚本,减少加载页面时发送
如果想用javascript给某个网页添加一些行为,就不该让javascript代码对这个网页的结构有任何依赖
nodeName属性总是返回一个大写字母的值
onclick鼠标点击事件,用Tab键移动到某个链接然后按下回车键也会触发
onkeypress按下键盘上任何一个键都会触发onkeypress事件,包括Tap键,会导致只使用键盘访问的用户永远无法离开当前链接
HTML-DOM只能用来处理Web文档
结构与行为的分离程度越大越好
如果把position属性值是absolute的元素A放入一个position属性值是relative的元素B,B就成为A的容器元素,而A在B的显示区域里按absolute方式进行摆放