一.JS 简史
什么是DOM(文档对象模型)?
JS 版本进化
1995年------Netscape公司与Sun公司合作开发------Netscape Navigator2 浏览器-------JS1.0版本;
------微软公司发布VBScript------IE3浏览器------同时以JScript为名发布了JS的一个版本;
面对微软的竞争,那俩公司联合ECMA(欧洲计算机制造商协会)对JS语言进行了标准化;
1996年------JS,ECMAScript,JScript都稳了,Netscape和微软在各自第三版浏览器中都不同程度地支持------JS1.1版本
1997年6月------Netscape Navigator4发布
10月------IE4发布
浏览器战争,版本改进,DOM扩展,使JS发挥发挥空间变大,新名词产生:DHTML(动态HTML)。
不幸的是,那俩浏览器制造商虽然目标一样,但是实现方法完全不一样(我们不一样),即两种不兼容的DOM。
二.JS语法复习
1.准备工作
2.JS语句
3.注释
单行注释://
多行注释:/* */
注意:在HTML中有一种注释方式是,这个在JS中只适用于单行。
4.变量
5.数据类型
1.字符串------字符串之中的特殊符号要用\\来转义(String);
2.数值------可以是浮点数(Number);
3.布尔值(Boolean),
4.数组(Array),
5.对象(Object),
6.操作
1.算术操作符
=------切记是赋值操作;
+------可以做加法运算,也可以 拼接 字符串;
+=------快捷操作,完成加法和赋值;
2.条件语句
比较操作符:>,<,>=,<=,
逻辑操作符:&& ,|| ,!;
3.循环语句
while循环
do...while循环
for 循环
7.函数
变量的作用域
8.对象
JS提供了很多预先定义的对象,这些可以拿来就用的对象称为内建对象。
三.DOM
D------document(文档)
O------Object
M------Model,Map
节点树------元素节点,文本节点,属性节点
元素节点
文本节点
属性节点
获取元素------DOM API提供三种方法,分别是通过元素ID,标签名字和类名字来获取。
1.getElementById()
2.getElementsByTagName()
3.getElementsByClassName()
阶段小结
获取和设置属性
1.getAttribute()
2.setAttribute()
四.案例研究:JS图片库
知识点:事件处理函数
遇到问题:当把函数写在window.onload=function(){ }中时,由于作用域的问题,事件处理函数没有识别到函数,会报错;假如在 onload中绑定点击事件,便可以识别,这都是由于JS中作用域的问题。
childNodes属性
nodeType属性
nodeValue
firstChild和lastChild
小结
五.最佳实践
新概念:伪协议
最佳实践方案:分离JS------对象检测
------浏览器嗅探技术(不怎么样,被淘汰)
性能考虑
1.尽量减少访问DOM和尽量减少标记;
2.合并和放置脚本,减少加载页面时发送的请求数量;
3.压缩脚本(包括修改局部变量名长度,去除没有必要的空格和注释)。
六.案例研究:图片库改进版
DOM Core和HTML-DOM
实用的代码片段
七.动态创建标记
createElement方法------只能创建元素节点
appendChild方法
以上两个方法是创建元素节点并把它接到DOM树上
createTextNode------创建文本节点,和createElement用法一样
insertBefore()------在已有元素前插入一个新元素
实用代码片段:insertAfter()------在已有元素的后面插入一个元素
AJAX
技术核心
看到此处,AJAX及XMLHttpReuqest对象仍然不是很明白,此时此刻我百度了下,所有BOM和DOM都是宿主对象,日后在说!
八.充实文档的内容
九.CSS—DOM
本章讲的只要是用DOM方法去改变CSS样式,重点是在这种方法中体会其中的编程思想。
十.用JS实现动画效果
读完本章,明白了实现动画的基本思路,也知道了一点开发框架的思路。
十一.HTML5
文中提到在目前兼容还不是很好的情况下并不适合全部使用H5。
十二.综合示例
把之前学习的所有的东西再综合运用下
看完此书,更明白了一些库在实现一些功能背后的原理,本书属于基础书,很好。