JavaScript语法简明手册
书籍作者:格雷格·赛德尼科夫 |
ISBN:9787115539922 |
书籍语言:简体中文 |
连载状态:全集 |
电子书格式:pdf,txt,epub,mobi,azw3 |
下载次数:3962 |
创建日期:2021-02-14 |
发布日期:2021-02-14 |
运行环境:PC/Windows/Linux/Mac/IOS/iPhone/iPad/Kindle/Android/安卓/平板 |
内容简介
本书包含大量精心绘制的示意图和丰富的示例代码,讲解了常用的JavaScript语法特性,为JavaScript初学者绘制了一条平缓的学习曲线。本书涵盖原生数据类型、强制类型转换、作用域、闭包、运算符、面向对象编程、事件循环机制等内容。这些内容由浅入深,适合初学者按顺序阅读。本书还突出了ES10引入的一些新特性,便于有进阶需要的读者翻阅。
作者简介
【作者简介】
格雷格·赛德尼科夫(Greg Sidelnikov),以“JavaScript老师”自称,从2004年开始编写和出版各类程序设计教程,涉及JavaScript、CSS、jQuery、Node API等,其中一些被加州大学欧文分校等学校采用。
【译者简介】
侯振龙,管理科学与工程专业硕士,软件开发工程师,具有10年软件开发经验,现就职于某外资企业。
编辑推荐
想学JavaScript,但不想"啃"大部头?
既想了解经典特性,又想与时俱进?
拒绝枯燥?适合视觉型学习?
以上需求通通满足!
1.适合零基础入门
浅显易懂,为进阶打好基础。适合放在手边,随时翻阅。
2.精选语法要点,内容实用
涵盖常用特性,如模板字符串、箭头函数、对象解构、生成器,以及ES10新增的内容,包括基本数据类型bigint、稳定的数组排序算法、扁平化多维数组。
3.彩色代码图,重点突出
超过200幅彩色代码图和示意图,直观呈现抽象概念,为你绘制有趣的JavaScript学习路线。
目录
第 1章 讲述形式 1
1.1 理论 1
1.2 实例 1
1.3 代码清单 1
1.4 示意图 2
1.4.1 抽象概念 2
1.4.2 代码片段 3
1.5 主要内容 3
1.6 注意事项 4
第 2章 Chrome控制台 5
2.1 copy函数 5
2.2 console.dir 5
2.3 console.error 6
2.4 console.time和console.timeEnd 7
2.5 console.clear 7
2.6 打印对象 8
第3章 欢迎使用JavaScript 9
3.1 入口点 9
3.1.1 DOMContentLoaded 9
3.1.2 注意事项 10
3.1.3 导入外部脚本 11
3.1.4 导入与导出 12
3.2 严格模式 14
3.2.1 对一个作用域开启严格模式 14
3.2.2 严格模式小结 15
3.3 字面量 15
3.4 变量 17
3.4.1 值占位符 17
3.4.2 动态类型 18
3.4.3 定义或声明 18
3.5 引用传递 18
3.6 作用域的怪癖 19
3.6.1 怪癖1:函数内的let和const与全局变量 19
3.6.2 怪癖2:var依附于window/this对象,而let和const不会 20
第4章 语句 21
4.1 求值语句 21
4.2 表达式 22
第5章 基本类型 23
5.1 基本类型 23
5.1.1 boolean 24
5.1.2 null 24
5.1.3 undefined 24
5.1.4 number 25
5.1.5 bigint 26
5.1.6 string 27
5.2 模板字符串 28
5.3 symbol 30
5.4 构造函数和实例 33
5.5 对基本类型执行方法 35
5.5.1 使用括号访问对象属性 35
5.5.2 连接方法 36
第6章 强制类型转换 37
6.1 强制类型转换示例 37
6.1.1 构造函数中的强制类型转换 38
6.1.2 强制类型转换详解 39
6.2 多个值相加 42
6.3 运算符优先级 43
6.4 字符串与数值的比较 43
6.5 运算符优先级和结合性一览表 45
6.6 左值和右值 47
6.6.1 赋值运算符 47
6.6.2 算术加法运算符 47
6.7 null与undefined 47
第7章 作用域 50
7.1 变量定义 50
7.1.1 区分大小写 50
7.1.2 定义 50
7.2 变量提升 51
7.3 函数提升 53
7.4 变量类型 56
7.5 作用域可见性的区别 56
7.5.1 在全局作用域中 56
7.5.2 在函数作用域中 57
7.5.3 闭包 58
7.5.4 在块级作用域中 59
7.5.5 在类中 59
7.6 const 60
7.6.1 const和数组 61
7.6.2 const和对象字面量 61
7.6.3 const小结 62
7.7 注意事项 62
第8章 运算符 63
8.1 算术运算符 63
8.2 赋值运算符 65
8.3 字符串运算符 65
8.4 比较运算符 65
8.5 逻辑运算符 66
8.6 位运算符 67
8.7 typeof运算符 67
8.8 三元运算符 68
8.9 delete 68
8.10 in 69
第9章 .rest和.spread 71
9.1 rest属性 71
9.2 spread属性 72
9.3 .rest和.spread 73
9.3.1 语法详解 73
9.3.2 编写带rest参数的sum()函数 75
9.3.3 使用spread来扁平化数组 76
9.3.4 在数组、对象或函数参数之外使用spread 76
9.4 解构赋值 77
9.4.1 使用spread合并对象 79
9.4.2 使用spread合并数组 80
第 10章 闭包 81
10.1 闭包入门 81
10.1.1 什么是闭包 81
10.1.2 漂亮的闭包 84
10.1.3 闭包小结 86
10.2 参数个数 87
10.3 柯里化 87
第 11章 循环 89
11.1 JavaScript中的循环类型 89
11.1.1 递增和递减 89
11.1.2 动态生成HTML元素 90
11.1.3 渲染列表 90
11.1.4 动态排序的表格 90
11.1.5 注意事项 90
11.2 for循环 91
11.2.1 基于零索引的计数器 91
11.2.2 无限for循环 91
11.2.3 多条语句 92
11.2.4 递增数字 92
11.2.5 for循环和let作用域 92
11.2.6 嵌套for循环 93
11.2.7 循环的长度 93
11.2.8 跳步 94
11.2.9 提前中断 94
11.2.10 自定义中断条件 94
11.2.11 跳转到标签 95
11.2.12 跳出标记的块级作用域 96
11.3 for.of循环 96
11.3.1 for.of和生成器 97
11.3.2 for.of和字符串 98
11.3.3 for.of和数组 98
11.3.4 for.of和对象 99
11.3.5 for.of循环和转换的可迭代对象 99
11.4 for.in循环 100
11.5 while循环 100
第 12章 数组和字符串 102
12.1 Array.prototype.sort 102
12.2 Array.forEach 103
12.3 Array.every 104
12.4 Array.some 105
12.5 Array.filter 106
12.6 Array.map 106
12.7 Array.reduce 107
12.7.1 Array.reduce与Array.filter 107
12.7.2 更新数据库中的对象属性 107
12.7.3 reduce的实际应用 107
12.7.4 注意事项 108
12.8 Array.flat 109
12.9 Array.flatMap 109
12.10 String.prototype.matchAll 109
12.10.1 使用全局匹配符/g 110
12.10.2 正则表达式的捕获组 110
12.10.3 使用matchAll的理由 112
12.10.4 matchAll的工作方式 112
12.10.5 使用matchAll的捕获组示例 112
12.10.6 注意事项 113
12.11 比较两个对象 113
12.11.1 编写arrcmp 115
12.11.2 改进objcmp 116
12.11.3 针对更复杂的对象测试objcmp 117
12.11.4 objcmp小结 119
第 13章 函数 120
13.1 函数 120
13.1.1 函数结构 120
13.1.2 匿名函数 121
13.1.3 将函数赋给变量 122
13.2 this关键字的来源 125
第 14章 高阶函数 126
14.1 理论 126
14.1.1 抽象 126
14.1.2 编写第 一个高阶函数 126
14.2 定义 127
14.3 抽象 127
14.4 迭代器 128
14.4.1 逐行解析map函数 129
14.4.2 调用自定义的map函数 130
14.4.3 调用Array.map 131
14.4.4 for循环怎么了 131
14.5 注意事项 131
第 15章 箭头函数 132
15.1 箭头函数 132
15.1.1 无return的返回 133
15.1.2 作为事件的箭头函数 133
15.2 箭头函数的结构 134
15.2.1 实参 135
15.2.2 从箭头函数返回 135
15.3 ES风格函数的相似性 136
15.3.1 无this绑定 137
15.3.2 无arguments对象 137
15.3.3 无构造函数 137
15.3.4 传统函数和箭头函数用作事件回调函数 138
15.3.5 继承的this语境 139
第 16章 动态创建HTML元素 140
16.1 设置CSS样式 140
16.2 使用appendChild方法向DOM中添加元素 141
16.2.1 document.body 141
16.2.2 getElementById 142
16.2.3 querySelector 142
16.3 编写函数来创建元素 142
16.3.1 函数参数 142
16.3.2 函数体 143
16.3.3 导入并使用absolute函数 145
16.4 使用构造函数来创建对象 146
第 17章 原型 147
17.1 原型 147
17.1.1 对象字面量的原型 148
17.1.2 原型链接 149
17.1.3 原型链 150
17.1.4 查找方法 150
17.1.5 数组方法 151
17.2 父对象 152
17.2.1 扩展自己的对象 152
17.2.2 constructor属性 153
17.2.3 Function 154
17.3 原型实践 155
17.3.1 对象字面量 155
17.3.2 使用Function构造函数 156
17.3.3 原型 157
17.3.4 使用Object.create来创建对象 158
17.3.5 示例继续 159
17.3.6 构造函数 160
17.3.7 new运算符 161
17.3.8 class关键字 162
第 18章 面向对象编程 164
18.1 Ingredient 164
18.2 FoodFactory 164
18.3 Vessel 164
18.4 Burner 165
18.5 灶台类型与多态炉灶 166
18.6 类定义 166
18.6.1 print.js 167
18.6.2 Ingredient 167
18.6.3 FoodFactory 168
18.6.4 Fridge 168
18.6.5 convert_energy_to_heat 169
18.6.6 Vessel 170
18.6.7 Burner 172
18.6.8 Range 172
18.7 组装 175
18.7.1 定义成分 176
18.7.2 实例化灶台对象 177
第 19章 事件 179
19.1 浏览器事件 179
19.2 合成事件 179
19.2.1 事件对象 179
19.2.2 事件捕获与事件冒泡 180
19.2.3 dispatchEvent 181
19.2.4 removeEventListener 181
19.2.5 CustomEvent对象 182
19.2.6 setTimeout 183
19.2.7 setInterval 184
19.3 拦截浏览器事件 184
19.4 显示鼠标位置 185
19.5 通用的鼠标事件类 186
19.5.1 包含和使用Mouse类 187
19.5.2 解析Mouse类 188
第 20章 网络请求 190
20.1 回调地狱 192
20.2 Promise 193
20.2.1 Promise.resolve 193
20.2.2 Promise.reject 195
20.2.3 组装 195
20.2.4 Promise.all 196
20.2.5 Promise解析 197
20.2.6 Promise小结 197
20.3 axios 198
20.4 FetchAPI 198
20.5 获取POST负载 199
20.6 async/await 200
20.6.1 async关键字的基础 200
20.6.2 await 202
20.6.3 async/await中的try-catch 202
20.6.4 小结 203
20.7 生成器 204
20.7.1 yield 204
20.7.2 捕获错误 205
第 21章 事件循环 206
第 22章 调用栈 209
22.1 什么是调用栈 209
22.2 执行语境 211
22.2.1 什么是执行语境 211
22.2.2 根执行语境 211
22.2.3 工作方式 211
22.3 代码中的执行语境 211
22.3.1 window与全局作用域 212
22.3.2 调用栈 212
22.3.3 call、bind、apply 214
22.3.4 栈溢出 214