ppk谈javascript

第一章 目标(讨论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

你可能感兴趣的:(ppk谈javascript)