第1章 走进JavaScript 1
1.1 JavaScript简介 1
1.1.1 JavaScript的起源 1
1.1.2 JavaScrip的特点 2
1.1.3 ECMAScript 6 3
1.1.4 ECMAScript版本发布 3
1.2 JavaScript开发环境 4
1.2.1 Sublime Text下载和安装 4
1.2.2 WebStorm下载和安装 6
1.3 JavaScript运行环境 7
1.3.1浏览器 7
1.3.2 Node.js 7
1.4学好JavaScript的建议 8
1.5小结 8
1.6知识拓展 9
1.6.1常用软件资源 9
1.6.2浏览器兼容性 10
1.6.3开发者社区 11
第2章 初次使用JavaScript 12
2.1 Hello,JavaScript 12
2.1.1编写脚本 12
2.1.2执行脚本 18
2.2编写JavaScript程序 19
2.2.1内联JavaScript 19
2.2.2外联JavaScript 20
2.2.3行内JavaScript 23
2.3执行JavaScript程序 24
2.3.1代码块 24
2.3.2变量提升 27
2.3.3输出结果 28
2.3.4动态执行 29
2.3.5延迟执行 32
2.4小结 33
2.5知识拓展 33
2.5.1 JavaScript框架 33
2.5.2 JavaScript压缩 34
第3章 JavaScript语法 36
3.1语法基础 36
3.1.1标识符 37
3.1.2直接量 38
3.1.3变量 40
3.1.4常量 41
3.1.5注释 43
3.1.6保留字 43
3.2数据类型 44
3.2.1布尔值 44
3.2.2数字 45
3.2.3字符串 47
3.2.4对象 48
3.2.5空值null 49
3.2.6未定义undefined 50
3.2.7使用typeof获取数据类型型 51
3.3严格模式 53
3.3.1开启严格模式 53
3.3.2严格模式的限制 54
3.4小结 55
3.5知识拓展 55
3.5.1未声明与未定义的区别 55
3.5.2 JavaScript编程风格 57
3.5.3 JavaScript文档工具 58
第4章 JavaScript运算符 59
4.1运算符 59
4.2算术运算符 62
4.2.1加减乘除 62
4.2.2递增递减 63
4.2.3取余取负 65
4.2.4幂运算 66
4.3比较运算符 68
4.3.1相等与全等 68
4.3.2类型转换 69
4.3.3大小判断 72
4.4逻辑运算符 74
4.5位运算符 77
4.5.1按位逻辑运算 78
4.5.2位移运算 78
4.6赋值运算符 79
4.7对象操作运算符 80
4.7.1 new运算符 80
4.7.2 delete运算符 82
4.7.3点号运算符 85
4.7.4中括号运算符 87
4.8其他运算符 89
4.8.1条件运算符 89
4.8.2逗号运算符 89
4.8.3小括号运算符 90
4.8.4 in运算符 90
4.8.5 instanceof运算符 92
4.8.6 void运算符 93
4.9运算符优先级 93
4.10小结 95
4.11知识拓展 95
4.11.1检测运算顺序 95
4.11.2惰性运算 96
第5章 JavaScript数值运算 98
5.1特殊数值 98
5.1.1最大值/最小值 98
5.1.2无穷大/极小值 101
5.1.3负零 104
5.1.4非数字NaN 104
5.2进制 105
5.2.1二进制 105
5.2.2八进制 106
5.2.3十进制 107
5.2.4十六进制 108
5.3内置函数 109
5.3.1 parselnt 109
5.3.2 parseFloat 112
5.4小结 112
5.5知识拓展 112
5.5.1进制转换 112
5.5.2浮点数误差 113
5.5.3三十六进制 114
第6章 JavaScript流程控制 115
6.1基本语句 115
6.1.1声明语句 115
6.1.2表达式语句 116
6.1.3复合语句 116
6.1.4空语句 118
6.2条件控制 119
6.2.1 if语句 119
6.2.2 switch语句 124
6.2.3 if和switch对比 127
6.2.4条件嵌套 129
6.3循环控制 131
6.3.1 for/for…in语句 131
6.3.2 while/do…while循环语句 134
6.3.3 for和while对比 136
6.3.4循环语句嵌套 136
6.4跳转控制 137
6.4.1标签语句 137
6.4.2 break语句 138
6.4.3 continue语句 140
6.5异常控制 142
6.5.1 try…catch…finally语句 142
6.5.2 throw语句 145
6.6小结 146
6.7知识拓展 147
6.7.1避免使用死循环 147
6.7.2避免使用标签语句 147
第7章 JavaScript函数 148
7.1函数定义 148
7.1.1 function关键字 148
7.1.2使用Function()构造函数 152
7.1.3匿名函数 153
7.2函数属性 155
7.2.1 name属性 155
7.2.2 length属性 157
7.3函数参数 158
7.3.1形参和实参 158
7.3.2传值和传引用 159
7.3.3 arguments对象 161
7.4函数调用 164
7.4.1简单调用 164
7.4.2方法调用 165
7.5函数返回值 166
7.6嵌套函数 168
7.7变量作用域 169
7.7.1全局作用域 169
7.7.2函数作用域 171
7.7.3变量优先级 172
7.8闭包函数 174
7.9 this对象 176
7.10小结 180
7.11知识拓展 180
7.11.1动态参数 180
7.11.2递归函数 181
第8章 JavaScript对象 183
8.1对象介绍 183
8.2创建对象 187
8.2.1使用花括号创建对象 187
8.2.2使用Object()创建对象 188
8.2.3使用Object.create()创建对象 190
8.3对象属性 191
8.3.1定义属性 191
8.3.2配置属性 194
8.3.3赋值属性 199
8.3.4删除属性 200
8.4对象操作 201
8.4.1访问对象 201
8.4.2枚举对象 202
8.4.3克隆对象 203
8.4.4销毁对象 204
8.5内置对象 205
8.5.1 Date日期对象 205
8.5.2 Math数学对象 208
8.6小结 210
8.7知识拓展 210
8.7.1原始值 210
8.7.2冻结对象 211
第9章 JavaScript数组 213
9.1数组介绍 213
9.2数组定义 215
9.2.1使用中括号定义数组 215
9.2.2使用Array()构造函数 216
9.2.3二维数组 217
9.3数组属性 218
9.3.1 length属性 218
9.3.2 prototype 220
9.4数组操作 221
9.4.1新增元素 222
9.4.2获取元素 224
9.4.3查找元素 224
9.4.4删除元素 227
9.4.5替换元素 228
9.4.6数组迭代 229
9.4.7数组排序 232
9.5小结 233
9.6知识拓展 234
9.6.1数组求和 234
9.6.2快速交换 234
第10章 JavaScript字符串 235
10.1字符串介绍 235
10.2字符串定义 235
10.2.1字符串常量 236
10.2.2字符串对象 237
10.3字符串属性 239
10.3.1 length属性 239
10.3.2 prototype属性 240
10.4字符串操作 241
10.4.1查找和替换 241
10.4.2字符串截取 244
10.4.3连接和拆分 248
10.4.4字符串转义 249
10.4.5大小写转换 251
10.4.6字符串转HTML函数 252
10.5小结 252
10.6知识拓展 252
10.6.1模板字符串 252
10.6.2 Unicode转义序列 255
第11章 JavaScript正则表达式 257
11.1正则表达式介绍 257
11.2正则表达式定义 258
11.2.1使用双斜线定义 258
11.2.2使用RegExp()构造函数 258
11.3正则表达式语法 259
11.3.1基本字符 260
11.3.2字符转义 260
11.3.3元字符 261
11.3.4限定符 263
11.3.5定位符 265
11.3.6修饰符 267
11.3.7分组捕获 269
11.3.8优先级 270
11.3.9注释 271
11.4正则表达式函数 271
11.4.1 regexp.exec() 271
11.4.2 regexp.test() 272
11.4.3 string.match() 273
11.4.4 string.replace() 274
11.4.5 string.search() 275
11.4.6 string.split() 276
11.5小结 277
11.6知识拓展 277
11.6.1预查匹配 277
11.6.2贪婪匹配 279
11.6.3常用正则表达式 280
第12章 原型链 286
12.1原型链介绍 286
12.2原型属性 287
12.2.1 prototype属性 287
12.2.2 _proto_属性 290
12.3原型扩展 291
12.3.1扩展原型 291
12.3.2修改原型 292
12.4原型继承 294
12.4.1私有方法 295
12.4.2公有方法 296
12.4.3实例方法 296
12.5小结 297
12.6知识拓展 298
12.6.1原型陷阱 298
12.6.2继承方式 298
第13章 BOM浏览器对象模型 306
13.1 BOM介绍 306
13.2 document文档对象 307
13.2.1对象集合 307
13.2.2对象属性 309
13.2.3对象方法 311
13.3 location导航对象 313
13.3.1网页网址 313
13.3.2网页访问 314
13.4 history历史对象 315
13.4.1网页操作 315
13.4.2网页刷新 316
13.5 navigator浏览器对象 317
13.5.1浏览器信息 318
13.5.2多语言与本地化 320
13.6 window窗口对象 323
13.6.1全局作用域 323
13.6.2对话框 324
13.6.3新建窗口 327
13.6.4关闭窗口 328
13.6.5窗口位置 329
13.6.6缩放事件 331
13.6.7异步调用 332
13.7 Notification 335
13.7.1请求权限 335
13.7.2显示通知 336
13.8小结 337
13.9知识拓展 337
13.9.1防止网页嵌套 337
13.9.2 BOM跨域限制 339
第14章 DOM文档对象模型 341
14.1 DOM介绍 341
14.2 DOM节点 343
14.2.1节点分类 343
14.2.2节点对象 345
14.2.3节点关系 349
14.3节点属性 350
14.3.1获取属性 350
14.3.2设置属性 352
14.3.3删除属性 354
14.3.4数据属性 355
14.4元素操作 356
14.4.1访问元素 356
14.4.2遍历元素 358
14.4.3新建元素 360
14.4.4插入元素 361
14.4.5查找元素 365
14.4.6复制元素 367
14.4.7删除元素 368
14.4.8替换元素 369
14.5节点字符串 370
14.5.1文本节点 371
14.5.2插入文本节点 371
14.5.3节点HTML 373
14.5.4插入HTML 374
14.6样式表 376
14.6.1获取样式 376
14.6.2设置样式 380
14.6.3动画效果 381
14.7小结 384
14.8知识拓展 384
14.8.1浏览器重绘 384
14.8.2浏览器重排 385
第15章 事件处理 387
15.1事件介绍 387
15.1.1什么是事件 387
15.1.2事件冒泡 390
15.1.3事件捕获 392
15.2事件属性 393
15.2.1基本属性 393
15.2.2鼠标事件属性 395
15.2.3键盘事件属性 396
15.3事件方法 398
15.3.1停止冒泡 398
15.3.2停止同级冒泡 400
15.3.3阻止默认操作 402
15.4页面事件 403
15.4.1网页加载 403
15.4.2资源加载 406
15.4.3网页滑动 407
15.4.4网页卸载 408
15.4.5标签事件 410
15.5键盘事件 412
15.6鼠标事件 414
15.6.1鼠标点击 414
15.6.2鼠标移动 416
15.6.3拖拽元素 418
15.7触摸事件 419
15.7.1触摸开始 420
15.7.2触摸移动 421
15.7.3触摸结束 422
15.7.4触摸取消 423
15.8事件模拟 424
15.8.1创建事件 424
15.8.2触发事件 425
15.9小结 426
15.10知识拓展 426
15.10.1事件委托 426
15.10.2自定义事件 430
第16章 表单对象 432
16.1表单元素 432
16.1.1表单对象 432
16.1.2控件列表 436
16.1.3控件属性 439
16.2表单事件 441
16.2.1获取焦点 441
16.2.2失去焦点 444
16.2.3内容修改 445
16.2.4提交事件 445
16.3表单提交 447
16.3.1使用GET提交 447
16.3.2使用POST提交 447
16.3.3文件上传 448
16.4小结 448
16.5知识拓展 449
16.5.1表单序列化 449
16.5.2无刷新提交 451
第17章 AJAX异步通信 453
17.1 AJAX介绍 453
17.1.1异步提交 453
17.1.2 XML语言 453
17.1.3 XMLHttpRequest对象 454
17.1.4 NGINX服务器配置 456
17.2 XML数据 457
17.2.1 XML文档 457
17.2.2 XML解析 457
17.3 JSON数据 458
17.3.1 JSON文档 458
17.3.2 JSON解析 459
17.3.3 JSON与XML对比 462
17.4 AJAX应用 462
17.4.1 XMLHttpRequest初始化 462
17.4.2设置readystatechange 464
17.4.3设置HTTP请求头信息 465
17.4.4发送请求 467
17.4.5获取HTTP响应头信息 468
17.4.6获取响应文本 469
17.4.7获取JSON数据 469
17.4.8获取XML数据 471
17.4.9获取二进制数据 472
17.5小结 473
17.6知识拓展 473
17.6.1请求进度条 473
17.6.2跨域请求 476
第18章 CSS网页特效 478
18.1 CSS操作 478
18.1.1样式对象 478
18.1.2计算样式 480
18.1.3设置样式 481
18.2 CSS大小 482
18.2.1 CSS高宽 482
18.2.2元素高宽 483
18.2.3视窗大小 484
18.3 CSS动画 486
18.3.1淡入淡出 486
18.3.2滑入滑出 488
18.4小结 491
18.5知识拓展 491
第19章 数据存储 493
19.1 Cookie 493
19.1.1 Cookie获取 494
19.1.2 Cookie设置 495
19.1.3 Cookie删除 496
19.1.4 Cookie安全 497
19.2 Session 497
19.3 WebStorage 498
19.3.1 localStorage对象 498
19.3.2 sessionStorage对象 502
19.3.3 Cookie与Storage对比 503
19.4小结 504
第20章 多媒体 505
20.1文件 505
20.1.1 Blob对象 505
20.1.2 File对象 506
20.1.3读取文件 508
20.2画板 513
20.2.1 canvas标签 513
20.2.2 canvas绘图 515
20.3音频 517
20.3.1 audio标签 517
20.3.2 audio属性 518
20.4视频 520
20.4.1 video标签 520
20.4.2 video属性 520
20.5小结 522
第21章 多线程 523
21.1浏览器线程 523
21.2 WebWorker 524
21.2.1创建线程 524
21.2.2线程通信 525
21.2.3结束线程 528
21.3线程安全 529
21.4小结 529
21.5知识拓展 530
第22章 jQuery 534
22.1 jQuery介绍 534
22.1.1元素集合 535
22.1.2链式调用 536
22.2选择器 537
22.2.1 CSS选择器 537
22.2.2表单选择器 539
22.2.3元素筛选 541
22.2.4子元素筛选 542
22.2.5内容筛选 544
22.2.6可见性筛选 545
22.3 DOM 547
22.3.1新建节点 547
22.3.2拷贝节点 548
22.3.3插入节点 550
22.3.4移除节点 555
22.3.5替换节点 558
22.3.6遍历节点 560
22.4属性操作 561
22.4.1获取属性 561
22.4.2设置属性 563
22.4.3移除属性 564
22.5样式表 565
22.5.1获取样式 565
22.5.2设置样式 566
22.5.3单位 570
22.5.4尺寸 571
22.5.5位置 574
22.6事件 579
22.6.1绑定与解绑 579
22.6.2事件模拟 581
22.6.3事件对象 582
22.6.4文档初始化 583
22.7数据 584
22.7.1获取数据 585
22.7.2设置数据 586
22.7.3移除数据 587
22.8动画 588
22.8.1显示隐藏 588
22.8.2滑动动画 590
22.8.3淡入淡出 591
22.8.4动画队列 592
22.8.5清除动画 595
22.8.6自定义动画 596
22.9 AJAX 598
22.9.1发送请求 598
22.9.2全局事件 603
22.10小结 604
22.11知识拓展 605
22.11.1框架兼容 605
22.11.2插件开发 606
第23章 项目实战 610
23.1项目分析 610
23.2技术选型 610
23.3个税计算器 611
23.3.1网页结构 611
23.3.2税率表 613
23.3.3五险一金 613
23.3.4纳税计算 614
23.4小结 624