第1章 引言 1
1.1回顾历史 1
1.2变革之风 3
1.3分析现状 3
1.4展望未来 4
1.5面向对象程序设计 5
1.5.1对象 5
1.5.2类 6
1.5.3封装 6
1.5.4聚合 7
1.5.5继承 7
1.5.6多态 8
1.6 OOP概述 8
1.7训练环境设置 9
1.8使用Firebug控制台 10
1.9本章小结 11
第2章 基本数据类型、数组、循环及条件表达式 13
2.1变量 13
2.2操作符 15
2.3基本数据类型 18
2.3.1查看类型操作符——typeof 19
2.3.2数字 19
2.3.3字符串 23
2.3.4布尔值 26
2.3.5 Undefiined与null 32
2.4基本数据类型综述 34
2.5数组 35
2.5.1增加、更新数组元素 36
2.5.2删除元素 36
2.5.3数组的数组 37
2.6条件与循环 38
2.6.1代码块 38
2.6.2循环 44
2.7注释 49
2.8本章小结 49
2.9练习题 50
第3章 函数 52
3.1什么是函数 53
3.1.1调用函数 53
3.1.2参数 53
3.2预定义函数 55
3.2.1 parseInt() 56
3.2.2 parseFloat() 57
3.2.3 isNaN() 58
3.2.4 isFinite() 58
3.2.5 URI的编码与反编码 59
3.2.6 eval() 59
3.2.7一点惊喜——alert()函数 60
3.3变量的作用域 60
3.4函数也是数据 62
3.4.1匿名函数 63
3.4.2回调函数 64
3.4.3回调示例 65
3.4.4自调函数 66
3.4.5内部(私有)函数 67
3.4.6返回函数的函数 68
3.4.7能重写自己的函数 68
3.5闭包 70
3.5.1作用域链 70
3.5.2词法作用域 71
3.5.3利用闭包突破作用域链 72
3.5.4 Getter与Setter 78
3.5.5迭代器 79
3.6本章小结 80
3.7练习题 80
第4章 对象 82
4.1从数组到对象 82
4.1.1元素、属性、方法 84
4.1.2哈希表、关联型数组 85
4.1.3访问对象的属性 85
4.1.4调用对象的方法 86
4.1.5修改属性与方法 87
4.1.6使用this值 88
4.1.7构造器函数 88
4.1.8全局对象 90
4.1.9构造器属性 91
4.1.10 instanceof操作符 92
4.1.11返回对象的函数 92
4.1.12传递对象 93
4.1.13对象比较 94
4.1.14 Firebug控制台中的对象 95
4.2内建对象 96
4.2.1 Object 97
4.2.2 Array 98
4.2.3 Function 102
4.2.4 Boolean 107
4.2.5 Number 109
4.2.6 String 110
4.2.7 Math 115
4.2.8 Date 117
4.2.9 RegExp 121
4.2.10 Error对象 127
4.3本章小结 131
4.4练习题 132
第5章 原型 135
5.1原型属性 135
5.1.1利用原型添加方法与属性 136
5.1.2.使用原型的方法与属性 137
5.1.3自身属性与原型属性 138
5.1.4利用自身属性重写原型属性 139
5.1.5 isPrototypeOf()方法 143
5.1.6神秘的_proto_链接 143
5.2扩展内建对象 145
5.2.1关于扩展内建对象的讨论 146
5.2.2一些原型陷阱 147
5.3本章小结 150
5.4练习题 150
第6章 继承 152
6.1原型链 152
6.1.1原型链示例 153
6.1.2将共享属性迁移到原型中去 156
6.2只继承于原型 158
6.3 uber子对象访问父对象的方式 161
6.4将继承部分封装成函数 163
6.5属性拷贝 163
6.6小心处理引用拷贝 165
6.7对象之间的继承 167
6.8深拷贝 169
6.9 object() 171
6.10原型继承与属性拷贝的混合应用 172
6.11多重继承 173
6.12寄生式继承 175
6.13构造器借用 176
6.14本章小结 179
6.15 案例学习:图形绘制 183
6.15.1分析 183
6.15.2实现 184
6.15.3测试 188
6.16练习题 189
第7章 浏览器环境 190
7.1在HTML页面中引入JavaScript代码 190
7.2概述:BOM与DOM 191
7.3 BOM 192
7.3.1 window对象再探 192
7.3.2 window.navigator 193
7.3.3 Firebug的备忘功能 193
7.3.4 window.location 194
7.3.5 window.history 195
7.3.6 window.frames 196
7.3.7 window.screen 197
7.3.8 window.open()/close() 198
7.3.9 window.moveTo()、 window.resizeTo() 199
7.3.10 window.alert()、 window.prompt()、 window.confiirm() 199
7.3.11 window.setTimeout()、 window.setInterval() 201
7.3.12 window.document 202
7.4 DOM 202
7.4.1 Core DOM与HTML DOM 204
7.4.2 DOM节点的访问 206
7.4.3 DOM节点的修改 215
7.4.4新建节点 218
7.4.5移除节点 221
7.4.6只适用于HTML的DOM对象 223
7.5事件 227
7.5.1内联HTML属性法 227
7.5.2元素属性法 227
7.5.3 DOM的事件监听器 228
7.5.4捕捉法与冒泡法 229
7.5.5阻断传播 231
7.5.6防止默认行为 233
7.5.7跨浏览器事件监听器 233
7.5.8事件类型 235
7.6 XMLHttpRequest对象 236
7.6.1发送请求 236
7.6.2处理响应 237
7.6.3在早于7的IE版本中创建XMLHttpRequest对象 238
7.6.4 A代表异步 239
7.6.5 X代表XML 240
7.6.6实例示范 240
7.7本章小结 242
7.8练习题 244
第8章 编程模式与设计模式 247
8.1编程模式 248
8.1.1行为隔离 248
8.1.2命名空间 250
8.1.3初始化分支 253
8.1.4延迟定义 254
8.1.5配置对象 255
8.1.6私有属性和方法 257
8.1.7特权函数 258
8.1.8私有函数的公有化 258
8.1.9自执行函数 259
8.1.10链式调用 260
8.1.11 JSON 261
8.2设计模式 262
8.2.1单件模式1 263
8.2.2单件模式2 263
8.2.3工厂模式 264
8.2.4装饰器模式 266
8.2.5观察者模式 269
8.3本章小结 272
附录A保留字 273
附录B内建函数 276
附录C内建对象 279
附录D正则表达式 305