初学JavaScript
1.web发展史
mosaic(马赛克):是互联网历史上第一个获普遍使用和能够显示图片的网页浏览器,93年问世。
马克安德森推出 Netspace Navigator(后衍生出火狐)
伊利诺伊大学将mosaic卖给微软,比尔盖茨在此基础上退出IE
Javascript 作者:Brendan Eich 始用命:Livescript
浏览器两大部分:shell 内核(渲染引擎、 js引擎 、其它模块)
编译性语言与解释性语言对比:
编译:优点:快 不足:移植性不好(不跨平台) 例如:c c++
解释:优点:跨平台 不足:稍微慢 例如:javascript php
java既不属于编译也不属于解释,因为java虚拟机存在可以跨平台
2.js引入
1.页面级js <script>script语句 </script>
2.引入外部js文件
3.js基本语法
1.变量:var声明变量
标准写法: var a = 10,
b = 20,
c = 30;
2.变量命名规则·

3.数据类型:
原始值:Number Boolean String undefined null
引用值:Object
对比:stack存原始值 heap存引用值
原始值之间赋值为拷贝关系,引用值放在heap中,但是在stack中存放heap地址;这就是原始值与引用值之间互相拷贝的不同。

4.获取元素
1.一份文档就是一棵节点树
2.节点分为不同的类型:元素节点、属性节点和文本节点等。
3.getElementById将返回一个对象。
4.getElementsByTagName根据标签名称返回数组,getElementsByClassName根据类名返回元素数组。参数均为字符串形式。
5.获取和设置属性
1.获取属性:object.getAttribute(属性名)
2.设置属性:object.setAttribute(属性名,属性值)
6.案例研究:javascript图片库
基础知识储备:
childNodes属性:获取一个元素的所有子元素,返回一个数组
nodeType属性:返回节点的类型;元素节点为1,属性节点为2,文本节点为3
nodeValue:用来改变文本节点的值
firstChild和lastChild : node.firstChild==node.childNodes[0] ; node.lastChild==node.childNodes[node.childNodes.length-1];


7.平稳退化与渐进增强
平稳退化:虽然某些功能无法使用,但仍能完成基本操作
渐进增强:将css、javascript与html代码分离
对象检测:将某个方法放到if中,若方法可执行,则返回true
好的习惯:将js文件尽可能地合并,减少发送的请求;将script标签写到</body>之前
javascript伪协议与内嵌的事件处理函数均不能完成平稳退化,应该将事件处理函数从html中分离出来。具体介绍可看《js_DOM编程艺术》
8.图片库改进
9.DOM Core和HTML_DOM
举例:DOM Core表示为:document.getElementsByTagName("form")
则用HTML_DOM可以表示为: document.form
DOM Core表示为: element.getAttribute("src")
则用HTML_DOM可以表示为: element.src
10.动态创建标记
传统方法:document.write 不过无法实现js与html的分离
新方法:innerHTML属性:可以用来读写某元素里的html内容,写内容时是完全覆盖
更好的DOM方法:createElement方法(创建元素节点)、appendChild方法(添加子元素)、createTextNode方法(创建文本节点)、insertBefore方法(在已知元素前插入元素,有两个参数,一个是新元素,另一个是目标元素,调用这个方法的元素为父节点)、parentNode(父节点)、insertAfter方法(根据insertBefore方法写的)、nextSibling(该节点的下一个节点)
11.实现动画效果
基础方法:setTimeout("functon",interval)(第一个参数为方法名的字符串,第二个方法为时间间隔,单位为毫秒)
clearTimeout(variable)(参数为调用setTimeout方法所返回的变量)
实例:实现一个字符的移动


