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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,591评论 6 501
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,448评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 162,823评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,204评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,228评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,190评论 1 299
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,078评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,923评论 0 274
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,334评论 1 310
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,550评论 2 333
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,727评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,428评论 5 343
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,022评论 3 326
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,672评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,826评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,734评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,619评论 2 354

推荐阅读更多精彩内容

  • 原文: https://github.com/ecomfe/spec/blob/master/javascript...
    zock阅读 3,371评论 2 36
  • 一、JS前言 (1)认识JS 也许你已经了解HTML标记(也称为结构),知道了CSS样式(也称为表示),会使用HT...
    凛0_0阅读 2,769评论 0 8
  • 第1章 认识JS JavaScript能做什么?1.增强页面动态效果(如:下拉菜单、图片轮播、信息滚动等)2.实现...
    mo默22阅读 1,277评论 0 5
  • 今天上午我们学校举行了一场秋季运动会。早上我们准时到校后,先在教室外面的走廊里排好队,然后一起走到了操场,到...
    赵安琪1阅读 473评论 0 0
  • 01 “你看,你的朋友某某也结婚了,找了个医生。而你都24岁了,已经不是小孩了,可是到现在你还什么都没有,赶紧好好...
    媛心共许阅读 586评论 7 9