第一章 目标(讨论javascript的目标、技术概览以及javascript的历史,以说明它的目标是如何被重新定义的)
1.javascript的目标是给web页面增加一个额外的可用性层
2.胖客户端(可用性)和瘦客户端(可访问性)
3.可访问性和可用性
4.核心(使得javascript成为一门编程语言的基础,控制结构、变量、函数和对象)
BOM(给浏览器窗口下达命令,读取cookie,与其他窗口进行通信)
事件(找出用户执行的动作,并定义这些动作将触发的函数)
DOM(学习和改变HTML文档的结构)
CSS修改(学习和改变HTML文档的css表现)
数据检索(从服务器下载新的数据而不刷新页面)
5.所有脚本都使用核心语言、事件和DOM,因为所有脚本必须是一个程序(核心)、必须等待用户采取某些行动(事件)、必须更新页面以提供反馈(DOM)。
第二章 大背景(讨论javascript的上下文环境,应是一个满足可用性、可访问性和符合标准的网站,它的结构层、表现层和行为层是分离的)
1.可访问性:网页对任何人在任何环境下都是可持续访问的
2.可用性:基础可用性到更好的使用网页
第三章 浏览器(讨论浏览器之间的兼容性问题和处理它们的策略)
1.渲染引擎和javascript引擎
2.Firefox-Gecko/IE-Trident/Safari-KHTML/Opera-
3.兼容性问题:不支持、合理的不同看法、有意为之的兼容性问题、浏览器bug
4.对象检测和浏览器检测
第四章 准备(讨论javascript与HTML结构层的交互、初始化和script标签)
1.良好的HTML/CSS结构
2.钩子:id,class,自定义属性(不属于HTML规范的属性),名值对
3.准备页面:
清晰的描述用户应该做什么才会启动脚本(选择合适的事件);
访问者到达你的页面后会发生什么(确定访问者的状态);
是否需要访问某个特定资源(设置访问);
修改HTML文档(产生内容);
是否需要定义HTML元素之间的关系,即发生在第一个元素上的事件是否会触发另一个元素的变化(定义关系);
对文档的大规模修改(修改文档结构);
4.初始化:window.load=函数名;
第五章 核心(基础、值、运算符、变量、数字&字符串&布尔型、控制结构、函数、对象、数组)
1.区分大小写、语句和分号、注释、代码块{}、运算符(操作数、优先级、返回值)、值(函数作为值、变量、字面量)
2.数据类型:数字、字符串、布尔值、对象(除了前三种都是对象,区别是对象可以被复制、被传递、还可以通过引用来比较,而不是通过值)、null(无值)、undefined()
3.typeof x;
函数-function
null-object
4.NaN非数字
“+”号
false:null、undefined、0、NaN、空字符串‘’
显式类型转换:*1、-0、+‘’、!!
5.运算符:
算术运算符:自增自减、相等、不等
条件运算符
6.变量名称:小写驼峰式(字母,_,$,数字)
使用关键字声明变量var
变量作用域(定义局部变量:var、参数)
7.Math对象、toFixed()/parseInt()/parseFloat()
8.引号(包含引号时可以转义)
创建了一个字符串,它就生成了一个String对象
length、indexOf()/lastindexOf()/chatAt()/substring()/split()/toLowerCase()/toUpperCase()
9.布尔运算符 &&/||/!
10.if、swich、for、while、do-while、for-in、break/continue、try-catch-finally
11.function 函数名称(参数){返回值}
作为值的函数 用()
内嵌函数
12.自定义对象 两种方法(new 对象字面量)
this关键字
全局对象
13.头部插入unshift()、头部删掉shift()、尾部插入push()、尾部删除pop()
第六章 BOM
1.window对象的作用:
它是javascript语言核心需要的全局对象;
它代表用户可以在电脑屏幕上看到的浏览器窗口;
它可以访问载入到窗口中的HTML文档;
它包含其他杂项休息和功能;
2.跨浏览器通信
导航:location对象和history对象
窗口几何学:screen对象、窗口尺寸、移动&改变大小&滚动窗口、获得焦点和失去焦点;
navigator对象、alert()、confirm、prompt()、setTimeOut()/clearTimeOut/setInterval()/clearInterval();
document对象;
3.cookie(设置、读取、删除)
名值对、有效期、目录路径、域
第七章 事件
1.javascript是一种事件驱动的编程语言
2.事件(用户采取的触发脚本的行为)、
注册事件处理程序(定义事件发生的时候哪一个函数被执行)、
事件冒泡和捕获(如果一个HTML元素和它的父元素处理同样的事件时,决定哪个事件处理程序先被触发)、
访问事件对象(事件对象保存着您的脚本可能需要的事件信息)、
目标定位(找出你应该对哪个元素执行操作以作为对事件的响应)
3.鼠标事件:click/dbclick/mouseover/mouseout/mouseover/mousedown/mouseup 可访问性问题(用户用键盘操作的时候)
键盘事件:
接口事件:blur/focus/change/contextmenu(点击右键)/load/unload/readystatechange/reset/submit/resize/scroll
默认操作和事件模拟
4.行内事件处理程序、传统模型、W3C模型(addEventListener/removeEventListener)、微软模型(attachEvent/detachEvent)
5.事件冒泡(从下到上)和事件捕获(从上到下)、
6.事件对象event对象:type(哪种事件)、发生事件的元素、鼠标的位置、鼠标按键、键盘属性
7.找到目标对象:target和srcElement、this
第八章 DOM
1.节点树(节点类型:文档节点、元素节点、属性节点、文本节点)
2.寻找元素:
长途:getElementById()/getElementsByTagName()
短途:parentNode/firstChild/lastChild/previousSibling/nextSibling
childNodes[]/children[](这个只包含元素节点)
3.节点信息:nodeName/nodeValue/nodeType(元素节点是1、属性节点是2、文本节点是3、文档节点是9)
4.修改文档树:appendChild()和insertBefore()/removeChild()/replaceChild()
5.创建&克隆元素:createElement()、createTextNode():按字面创建文本、clone()
6.innerHTML
7.属性节点getAttribute/setAttribute
8.文本节点
9.节点列表
10.表单与0级DOM
第九章 CSS修改
1.style属性
2.改变class
3.获取样式:currentStyle/window.getComputedStyle
4.元素的尺寸:clientWidth/clientHeight offsetWidth/offsetHight scrollWidth/scrollHeight scrollTop/ScrollLeft
第十章 数据检索
1.创建一个XMLHttpRequest对象(随浏览器类型而定)
指示该对象打开一个特定的文件(调用open(method,url,true)方法)
告诉该对象如何处理服务器返回的数据(注册onreadystatechange事件处理程序)
给出指令让该对象发送请求(调用send()方法);
2.GET是把数据作为查询字符串追加在URL上,POST让数据随着HTTP请求的正文发送
3.响应的格式:responseXML、responseText