JavaScript网页编程从入门到精通 微课精编版 作者:前端科技
JavaScript网页编程从入门到精通 微课精编版 出版社:清华大学出版社
JavaScript网页编程从入门到精通 微课精编版 内容简介
《JavaScript网页编程从入门到精通(微课精编版)》由浅入深、通俗易懂地讲解了网页制作和动态网站建设的相关技术及实际应用。全书共19章,包括JavaScript基础、JavaScript基本语法、JavaScript程序结构设计、使用数组、使用字符串、使用正则表达式、使用函数、函数式编程、使用对象、面向对象编程、BOM操作、DOM操作、事件操作、CSS操作、JavaScript通信、JavaScript数据存储、JavaScript图形设计、JavaScript文件操作等内容。本书在编写过程中,注意理论与实践相结合,通过大量的实例配合讲解各知识要点。
JavaScript网页编程从入门到精通 微课精编版 目录
第1 章 JavaScript 基础 1
视频讲解:16 分钟
1.1 JavaScript 概述 2
1.1.1 什么是JavaScript 2
1.1.2 为什么学习JavaScript 2
1.2 JavaScript 历史和版本 5
1.2.1 JavaScript 早期历史 5
1.2.2 ECMAScript 与JavaScript 的关系 5
1.2.3 ECMAScript 历史 6
1.2.4 ECMAScript 与浏览器的兼容 6
1.3 JavaScript 构成 7
1.3.1 JavaScript 核心 7
1.3.2 文档对象模型 7
1.3.3 浏览器对象模型 9
1.4 初次使用JavaScript 9
1.4.1 编写脚本 9
1.4.2 脚本位置 12
1.4.3 设置延迟执行 13
1.4.4 设置异步响应 13
1.4.5 在XHTML 中使用JavaScript 脚本 13
1.4.6 兼容不支持JavaScript 的浏览器 14
1.4.7 比较嵌入代码与链接脚本 14
1.4.8 使用<noscript>标签 14
1.4.9 脚本的动态加载 14
1.5 JavaScript 解析基础 14
1.6 浏览器与JavaScript 15
1.7 JavaScript 开发工具 15
1.8 JavaScript 发展趋势 15
第2 章 JavaScript 基本语法 16
视频讲解:2 小时1 分钟
2.1 编写第一行代码 17
2.2 变量 18 [1]
2.2.1声明变量18
2.2.2赋值变量19
2.2.3变量的作用域19
2.2.4全局变量20
2.3数据类型21
2.3.1检测类型21
2.3.2数值22
2.3.3字符串24
2.3.4布尔值25
2.3.5Null和Undefined26
2.4运算符27
2.5使用算术运算符29
2.5.1加法运算29
2.5.2减法运算30
2.5.3乘法运算31
2.5.4除法运算31
2.5.5余数运算31
2.5.6取反运算32
2.5.7递增和递减运算32
2.6使用逻辑运算符33
2.6.1与运算33
2.6.2或运算符35
2.6.3非运算符36
2.6.4逻辑运算36
2.7使用关系运算符38
2.7.1大小比较38
2.7.2包含检测39
2.7.3等值检测39
2.8使用赋值运算符41
2.9使用对象操作运算符42
2.10使用位运算符42
2.10.1认识位运算43
2.10.2逻辑位运算43
2.10.3移位运算43
2.11使用其他运算符43
2.11.1条件运算符43
2.11.2逗号运算符44
2.11.3void运算符45
2.12表达式46
2.13严格模式49
2.14案例实战51
2.14.1完善类型检测接口51
2.14.2转换为字符串52
2.14.3转换为数字54
2.14.4转换为数字形式字符串56
2.14.5转换为布尔值57
2.14.6转换为对象58
2.14.7把对象转换为值58
2.14.8强制类型转换59
2.15强化练习59
2.15.1求值59
2.15.2简单编程59
2.15.3表达式计算59
2.15.4表达式编程59
第3章JavaScript程序结构设计60
视频讲解:1小时30分钟
3.1语句61
3.1.1表达式语句61
3.1.2复合语句61
3.1.3声明语句62
3.1.4空语句62
3.2选择结构63
3.2.1if语句63
3.2.2设计多选择结构64
3.2.3switch语句67
3.2.4default从句69
3.2.5优化选择结构70
3.3循环结构73
3.3.1while语句73
3.3.2do-while语句74
3.3.3for语句75
3.3.4for-in语句76
3.3.5优化循环结构79
3.4跳转结构81
3.4.1标签语句81
3.4.2break语句81
3.4.3continue语句83
3.5异常处理结构85
3.5.1throw语句86
3.5.2try-catch-finally语句86
3.6案例实战88
3.6.1把结构语句转换为表达式88
3.6.2优化选择运算性能90
3.6.3优化循环运算性能91
3.6.4设计杨辉三角93 [2]
3.6.5编程题95
第4章使用数组97
视频讲解:1小时43分钟
4.1数组基础98
4.1.1定义数组98
4.1.2定义多维数组99
4.1.3读写数组99
4.1.4数组长度100
4.1.5类数组101
4.1.6检测数组101
4.1.7遍历数组102
4.1.8空位数组103
4.2使用Array104
4.2.1判断数组104
4.2.2增删数组104
4.2.3合并数组106
4.2.4转换为字符串107
4.2.5截取数组108
4.2.6排序数组109
4.2.7定位元素111
4.2.8迭代数组112
4.2.9过滤数组115
4.2.10验证数组115
4.2.11汇总数组116
4.3案例实战118
4.3.1交换变量值118
4.3.2使用关联数组118
4.3.3扩展数组120
4.3.4初始化数组121
4.3.5数组去重122
4.4强化练习124
4.4.1插入排序124
4.4.2二分插入排序124
4.4.3选择排序124
4.4.4冒泡排序124
4.4.5快速排序124
4.4.6计数排序124
第5章使用字符串125
视频讲解:1小时19分钟
5.1字符串基础126
5.1.1定义字符串126
5.1.2字符串与数组128
5.1.3字符串长度129
5.1.4字符集130
5.1.5Base64转码131
5.2使用String132
5.2.1字符串的表示和值132
5.2.2连接字符串133
5.2.3获取指定位置字符133
5.2.4获取字符的位置134
5.2.5查找字符串135
5.2.6截取字符串136
5.2.7替换字符串138
5.2.8大小写转换139
5.2.9比较字符串139
5.2.10转换为数组140
5.2.11修剪字符串141
5.3案例实战141
5.3.1格式化字符串141
5.3.2字符编码和解码142
5.3.3Unicode编码和解码144
5.3.4字符串智能替换146
5.3.5过滤敏感词148
5.3.6高级加密解密148
第6章使用正则表达式151
视频讲解:1小时20分钟
6.1新建正则表达式152
6.1.1构造正则表达式152
6.1.2正则表达式直接量153
6.2匹配规则基础154
6.2.1字面量字符和元字符154
6.2.2转义字符155
6.2.3特殊字符156
6.2.4字符类157
6.2.5预定义模式159
6.2.6重复类160
6.2.7量词字符160
6.2.8贪婪模式160
6.2.9修饰字符161
6.2.10模式分组162
6.2.11分组引用163
6.2.12非引用组164
6.2.13声明边界165
6.3使用RegExp165
6.3.1RegExp对象属性165
6.3.2test()166
6.3.3exec()167
6.3.4RegExp静态属性169
6.4案例实战171
6.4.1匹配十六进制颜色值171
6.4.2匹配时间172
6.4.3匹配日期173
6.4.4匹配成对标签173
6.4.5匹配物理路径174
6.4.6货币数字的千位分隔符表示175
6.4.7验证密码176
第7章使用函数178
视频讲解:2小时5分钟
7.1函数基础179
7.1.1声明函数179
7.1.2定义函数表达式180
7.1.3构造函数181
7.1.4定义嵌套函数182
7.1.5比较函数的定义方法182
7.1.6函数的返回值182
7.1.7函数的参数183
7.1.8调用函数184
7.1.9函数作用域186
7.1.10函数的标识符187
7.2使用arguments188
7.2.1认识arguments对象188
7.2.2使用callee190
7.2.3应用arguments190
7.3使用Function192
7.3.1name属性192
7.3.2length属性192
7.3.3toString()193
7.3.4call()和apply()193
7.3.5bind()197
7.4案例实战199
7.4.1函数调用模式199
7.4.2使用闭包201
7.4.3使用this202
7.4.4函数引用和函数调用204
7.4.5链式调用204
7.4.6使用函数实现历史记录205
7.4.7扩展Function类型206
7.4.8代码的模块模式207
7.4.9惰性实例化208
7.4.10分支函数209
7.4.11惰性载入函数210
7.4.12函数节流211
第8章函数式编程213
8.1函数式编程概述214
8.1.1范畴论214
8.1.2一等公民的函数215
8.1.3纯函数215
8.1.4命令式和声明式218
8.1.5PointFree风格218
8.2函数式基本运算219
8.2.1函数合成219
8.2.2compose实现221
8.2.3函数柯里化222
8.2.4curry实现224
8.2.5curry变体225
8.3函子228
8.3.1认识函子228
8.3.2定义容器229
8.3.3定义函子230
8.3.4Either函子232
8.3.5Applicative函子234
8.4高阶函数236
8.4.1回调函数236
8.4.2返回函数237
8.5递归函数239
8.5.1定义递归函数240
8.5.2尾递归241
8.5.3栈缓存242
8.6案例实战244
8.6.1过滤运算244
8.6.2分组运算247
8.6.3映射运算249
8.7使用Promise对象252
第9章使用对象253
视频讲解:32分钟
9.1创建对象254
9.1.1使用new运算符254
9.1.2对象直接量255
9.1.3使用create()方法257
9.2对象的基本操作258
9.2.1引用对象258
9.2.2复制对象258
9.2.3克隆对象259
9.2.4销毁对象260
9.3读写属性260
9.3.1定义属性260
9.3.2访问属性263
9.3.3赋值属性265
9.3.4删除属性266
9.3.5对象方法266
9.4使用Object对象268
9.4.1Object函数268
9.4.2Object构造函数268
9.4.3使用Object静态方法268
9.4.4使用Object实例方法268
9.5使用包装对象268
9.5.1包装对象的实例方法269
9.5.2原始类型的自动转换269
9.5.3自定义方法269
9.5.4Boolean对象269
9.6使用属性描述对象269
9.6.1认识属性描述对象269
9.6.2Object.getOwnPropertyDescriptor()270
9.6.3Object.defineProperty()和Object.defineProperties()270
9.6.4元属性270
9.6.5Object.getOwnPropertyNames()270
9.6.6Object.prototype.propertyIsEnumerable()270
9.6.7存取器270
9.6.8对象的拷贝270
9.6.9控制对象状态270
9.7使用Math对象270
9.7.1Math属性271
9.7.2Math方法271
9.8使用Date对象271
9.8.1创建Date对象271
9.8.2日期运算271
9.8.3Date静态方法271
9.8.4Date实例方法271
9.9使用JSON对象271
9.9.1JSON.stringify()272
9.9.2JSON.parse()272
9.9.3比较JSON与XML272
9.9.4优化JSON数据272
9.10使用console对象272
9.10.1浏览器实现272
9.10.2console对象的方法272
9.10.3命令行API272
9.10.4debugger语句272
第10章面向对象编程273
视频讲解:33分钟
10.1面向对象基础274
10.1.1对象274
10.1.2构造函数274
10.1.3使用new运算符275
10.1.4new运行原理275
10.1.5使用new.target276
10.2使用this277
10.2.1this调用对象277
10.2.2this应用场景277
10.2.3注意事项277
10.2.4绑定this277
10.3使用prototype277
10.3.1定义原型278
10.3.2原型属性和本地属性279
10.3.3应用原型280
10.3.4原型链283
10.3.5原型继承284
10.3.6扩展原型方法285
10.3.7Object.getPrototypeOf()286
10.3.8Object.setPrototypeOf()286
10.3.9Object.create()286
10.3.10Object.prototype.isPrototypeOf()286
10.3.11Object.prototype.__proto__287
10.3.12获取原型对象方法的比较287
10.4继承287
10.4.1Object.getOwnPropertyNames()287
10.4.2Object.prototype.hasOwnProperty()287
10.4.3in运算符和for-in循环287
10.4.4对象的拷贝288
10.5面向对象编程模式289
10.5.1构造函数的继承289
10.5.2多重继承290
10.5.3模块291
10.6案例实战294
10.6.1设计工厂模式294
10.6.2设计类继承294
10.6.3设计构造原型模式294
10.6.4设计动态原型模式294
10.6.5设计实例继承295
10.6.6惰性实例化295
10.6.7安全构造对象295
第11章BOM操作296
视频讲解:1小时55分钟
11.1window对象297
11.1.1window对象属性297
11.1.2window对象方法298
11.1.3window对象事件301
11.1.4访问浏览器对象302
11.1.5全局作用域302
11.1.6使用人机互动方法302
11.1.7打开和关闭窗口303
11.1.8使用框架集303
11.1.9控制窗口位置303
11.1.10控制窗口大小303
11.2navigator对象303
11.2.1navigator对象属性303
11.2.2浏览器检测方法305
11.2.3检测浏览器类型和版本号305
11.2.4检测客户操作系统305
11.2.5检测插件305
11.3location对象306
11.4history对象307
11.4.1实现无刷新浏览308
11.4.2设计导航页面311
11.4.3设计无刷新网站312
11.4.4设计无刷新灯箱广告312
11.4.5设计可后退画板313
11.5screen对象313
11.6document对象314
11.6.1document对象属性315
11.6.2document对象方法316
11.7案例实战317
11.7.1使用远程脚本317
11.7.2设计远程交互319
11.7.3使用浮动框架322
11.7.4封装用户代理检测324
第12章DOM操作325
视频讲解:1小时47分钟
12.1DOM版本概述326
12.2节点326
12.2.1节点类型326
12.2.2节点名称和值326
12.2.3节点树327
12.2.4访问节点327
12.2.5操作节点330
12.3文档331
12.3.1访问文档节点和子节点331
12.3.2访问文档信息332
12.3.3访问文档元素332
12.3.4访问文档集合333
12.3.5使用HTML5Document333
12.4元素334
12.4.1访问元素334
12.4.2遍历元素335
12.4.3创建元素335
12.4.4复制节点336
12.4.5插入节点336
12.4.6删除节点337
12.4.7替换节点337
12.4.8获取焦点元素338
12.4.9检测包含节点339
12.5文本339
12.5.1访问文本节点339
12.5.2创建文本节点340
12.5.3操作文本节点341
12.5.4读取HTML字符串341
12.5.5插入HTML字符串342
12.5.6替换HTML字符串342
12.5.7插入文本343
12.6文档片段343
12.7属性344
12.7.1访问属性节点344
12.7.2读取属性值345
12.7.3设置属性值345
12.7.4删除属性346
12.7.5使用类选择器347
12.7.6自定义属性348
12.8CSS选择器348
12.9范围350
12.9.1创建范围350
12.9.2选择范围350
12.9.3设置范围350
12.9.4操作范围内容350
12.9.5插入范围内容350
12.9.6折叠范围350
12.9.7比较范围351
12.9.8复制和清除范围351
12.10案例实战351
12.10.1异步加载远程数据351
12.10.2使用script设计异步交互351
12.10.3使用JSONP异步通信351
12.10.4访问DOM集合352
12.10.5编辑选择文本352
第13章事件操作353
视频讲解:46分钟
13.1事件基础354
13.1.1JavaScript事件发展历史354
13.1.2事件模型354
13.1.3事件传播354
13.1.4事件类型355
13.1.5绑定事件355
13.1.6事件监听函数356
13.1.7注册事件358
13.1.8销毁事件360
13.1.9event对象362
13.1.10事件委托364
13.2自定义事件366
13.2.1设计弹出对话框366
13.2.2设计遮罩层367
13.2.3自定义事件369
13.2.4设计事件触发模型370
13.2.5应用事件模型371
13.3鼠标事件375
13.3.1click和dblclick375
13.3.2mouseup、mousedown和mousemove375
13.3.3mouseover和mouseenter375
13.3.4mouseout和mouseleave375
13.3.5contextmenu375
13.4MouseEvent对象375
13.4.1altKey、ctrlKey、metaKey和shiftKey375
13.4.2button和buttons376
13.4.3clientX、clientY、movementX、movementY、screenX和screenY376
13.4.4relatedTarget376
13.4.5小结376
13.5wheel事件376
13.6键盘事件376
13.6.1altKey、ctrlKey、metaKey和shiftKey376
13.6.2key和charCode376
13.6.3小结376
13.7进度事件377
13.8拖曳事件377
13.8.1事件种类377
13.8.2DataTransfer对象概述377
13.8.3DataTransfer对象的属性377
13.8.4DataTransfer对象的方法377
13.9触摸事件377
13.9.1Touch对象377
13.9.2TouchList对象378
13.9.3TouchEvent对象378
13.9.4触摸事件的种类378
13.10表单事件378
13.10.1input378
13.10.2select378
13.10.3change378
13.10.4submit378
13.10.5reset378
13.11文档事件378
13.11.1beforeunload、unload、load、error、pageshow和pagehide378
13.11.2DOMContentLoaded和readystatechange379
13.11.3scroll379
13.11.4resize379
13.11.5hashchange和popstate379
13.11.6cut、copy和paste379
13.11.7focus、blur、focusin和focusout379
第14章CSS操作380
视频讲解:41分钟
14.1CSS脚本基础381
14.1.1访问行内样式381
14.1.2使用style382
14.1.3使用styleSheets385
14.1.4使用selectorText388
14.1.5修改样式389
14.1.6添加样式390
14.1.7访问渲染样式391
14.1.8访问媒体查询394
14.1.9CSS事件395
14.2CSS尺寸397
14.2.1访问CSS宽度和高度397
14.2.2把值转换为整数397
14.2.3使用offsetWidth和offsetHeight397
14.2.4元素尺寸397
14.2.5视图尺寸398
14.2.6窗口尺寸398
14.3CSS位置398
14.3.1窗口位置398
14.3.2相对位置398
14.3.3定位位置398
14.3.4设置偏移位置398
14.3.5设置相对位置398
14.3.6鼠标指针绝对位置398
14.3.7鼠标指针相对位置398
14.3.8滚动条位置398
14.3.9设置滚动条位置399
14.4CSS显示399
14.4.1设置显隐效果399
14.4.2设置渐隐、渐显效果399
14.5CSS动画399
14.5.1使用定时器399
14.5.2滑动399
14.5.3渐显399
14.5.4使用requestAnimationFrame399
第15章JavaScript通信400
视频讲解:1小时21分钟
15.1XMLHttpRequest1.0基础401
15.1.1定义XMLHttpRequest对象401
15.1.2建立XMLHttpRequest连接402
15.1.3发送GET请求403
15.1.4发送POST请求403
15.1.5转换串行化字符串405
15.1.6跟踪状态406
15.1.7中止请求407
15.1.8获取XML数据407
15.1.9获取HTML文本408
15.1.10获取JavaScript脚本409
15.1.11获取JSON数据409
15.1.12获取纯文本410
15.1.13获取头部信息411
15.2XMLHttpRequest2.0基础411
15.2.1请求时限412
15.2.2FormData数据对象412
15.2.3上传文件412
15.2.4跨域访问413
15.2.5响应不同类型数据413
15.2.6接收二进制数据413
15.2.7监测数据传输进度414
15.3案例实战414
15.3.1接收ArrayBuffer对象415
15.3.2接收Blob对象415
15.3.3发送字符串415
15.3.4发送表单数据415
15.3.5发送二进制文件415
15.3.6发送Blob对象416
15.3.7跨域请求416
15.3.8设计文件上传进度条416
15.4跨文档消息传递416
15.4.1postMessage基础416
15.4.2案例:设计简单的跨域通话418
15.4.3案例:设计跨域动态对话418
15.4.4案例:设计通道通信418
15.5WebSockets通信418
15.5.1WebSocket基础418
15.5.2使用WebSocketsAPI420
15.5.3在PHP中建立socket423
15.5.4WebSocketsAPI开发框架424
15.5.5案例:设计简单的“呼-应”通信425
15.5.6案例:发送JSON对象425
15.5.7案例:使用Workerman框架通信426
15.5.8案例:推送信息426
第16章JavaScript数据存储427
视频讲解:1小时40分钟
16.1HTTPCookie428
16.1.1写入cookie信息428
16.1.2读取cookie信息430
16.1.3修改和删除cookie信息431
16.1.4附加cookie信息431
16.1.5Http-OnlyCookie432
16.1.6封装cookie操作433
16.1.7案例实战433
16.2WebStorage434
16.2.1使用WebStorage434
16.2.2案例:设计登录页436
16.2.3案例:流量统计436
16.3WebSQLDatabase437
16.3.1使用WebSQLDatabase437
16.3.2案例:设计登录页442
16.3.3案例:设计留言板442
16.4indexedDB442
16.4.1建立连接442
16.4.2更新版本444
16.4.3新建仓库446
16.4.4新建索引447
16.4.5使用事务449
16.4.6保存数据450
16.4.7访问数据451
16.4.8访问键值451
16.4.9访问属性451
16.5案例:设计录入表单451
第17章JavaScript图形设计452
视频讲解:2小时15分钟
17.1使用canvas453
17.2绘制图形455
17.2.1矩形455
17.2.2路径456
17.2.3直线457
17.2.4圆弧458
17.2.5二次方曲线460
17.2.6三次方曲线461
17.3定义样式和颜色462
17.3.1颜色462
17.3.2不透明度463
17.3.3实线464
17.3.4虚线465
17.3.5线性渐变465
17.3.6径向渐变467
17.3.7图案467
17.3.8阴影468
17.3.9填充规则469
17.4图形变形470
17.4.1保存和恢复状态470
17.4.2清除画布471
17.4.3移动坐标472
17.4.4旋转坐标473
17.4.5缩放图形474
17.4.6变换图形475
17.5图形合成476
17.5.1合成476
17.5.2裁切477
17.6绘制文本477
17.6.1填充文字477
17.6.2轮廓文字478
17.6.3文本样式478
17.6.4测量宽度479
17.7使用图像479
17.7.1导入图像479
17.7.2缩放图像481
17.7.3裁切图像482
17.7.4平铺图像482
17.8像素操作483
17.8.1认识ImageData对象483
17.8.2创建图像数据483
17.8.3将图像数据写入画布483
17.8.4在画布中复制图像数据484
17.8.5保存图片484
17.9Path2D对象485
17.9.1Canvas2DAPI新功能486
17.9.2使用Path2D对象486
17.10案例实战486
17.10.1设计基本动画486
17.10.2颜色选择器486
17.10.3给图像去色486
17.10.4缩放图像和反锯齿处理486
17.10.5设计运动动画487
17.10.6设计地球和月球公转动画487
第18章JavaScript文件操作488
视频讲解:1小时24分钟
18.1FileList489
18.2Blob490
18.2.1访问Blob490
18.2.2创建Blob491
18.2.3截取Blob493
18.2.4保存Blob494
18.3FileReader495
18.3.1读取文件495
18.3.2事件监测497
18.4ArrayBuffer和ArrayBufferView498
18.4.1使用ArrayBuffer499
18.4.2使用ArrayBufferView499
18.4.3使用DataView500
18.5FileSystemAPI503
18.5.1认识FileSystemAPI503
18.5.2访问FileSystem503
18.5.3申请配额505
18.5.4新建文件508
18.5.5写入数据510
18.5.6添加数据510
18.5.7读取数据510
18.5.8复制文件511
18.5.9删除文件511
18.5.10创建目录511
18.5.11读取目录512
18.5.12删除目录512
18.5.13复制目录512
18.5.14重命名目录512
18.5.15使用filesystem:URL513
18.6案例:设计资源管理器513
第19章案例实战514
19.1设计折叠面板515
19.2设计计算器515
19.3设计日历515
19.4设计验证插件515
19.5设计俄罗斯方块515
附录517
附录AECMAScript6517
附录B使用SVG517
附录CCORS通信517
附录D同源策略518
附录EMutationObserverAPI518
附录FJavaScript编程风格518
本文来自铁石心肠投稿,不代表电子书资源网立场,如若转载,请联系原作者获取。