内容简介 · · · · · ·
本书从的基础语法开始讲解,循序渐进地介绍了的推荐知识和不错技巧,并通过大量实例带领读者掌握Web前端开发中常用的知识及开发技巧。本书着重于为编程开发人员及爱好者提供简单易懂、清晰明了的学习路径。本书结构清晰,内容编排由浅入深,能够帮助读者拥有Web开发中不可或缺的能力和技巧。本书既适合语言初学者,也适合语言进阶者。
作者简介 · · · · · ·
高鹏, 资讯web 前端开发人员 ,全栈工程师JavaScript资深爱好者,长期从事技术研究和推广工作JavaScript公众号创始人。
目录 · · · · · ·
第1章初入 001
1.1 简介002
1.2 起源003
1.3 实现004
1.3.1ECMAScript004
1.3.2BOM005
1.3.3DOM005
1.4 使用005
1.4.1内联的 005
1.4.2外部的 006
1.4.3行内的 007
第2章准备工作008
2.1开发工具009
2.1.1Sublime Text009
2.1.2Visual Studio Code010
2.1.3WebStorm011
2.1.4Atom012
2.2Chrome 开发者工具012
2.2.1信息类方法013
2.2.2清除历史记录013
2.2.3保留历史记录014
第3章语法015
3.1基本语法016
3.1.1语句016
3.1.2注释016
3.1.3标识符017
3.2变量和变量作用域019
3.2.1变量019
3.2.2声明变量019
3.2.3非声明变量024
3.3数据类型025
3.3.1内存空间025
3.3.2基本数据类型与引用数据类型025
3.3.3浅拷贝与深拷贝027
3.3.4typeof 与 instanceof029
3.3.5类型转换031
3.3.6基本包装类型035
3.4字符串036
3.4.1字符串的特点039
3.4.2length 属性039
3.4.3实例方法039
3.5运算符048
3.5.1算术运算符048
3.5.2逻辑运算符050
3.5.3比较运算符051
3.5.4三元运算符052
3.5.5赋值053
3.5.6位运算符054
3.5.7异步操作符 async function055
3.5.8其他运算符059
3.5.9运算符优先级060
3.6条件语句062
3.6.1if 语句062
3.6.2switch 语句063
3.6.3三元运算符064
3.7循环语句065
3.7.1for065
3.7.2while065
3.7.3for…in067
3.7.4for…of068
3.7.5break 和 continue 语句068
3.8错误处理069
3.8.1try…catch069
3.8.2throw070
3.9严格模式070
第4章函数072
4.1定义073
4.1.1返回值073
4.1.2箭头函数(Arrow Function)074
4.1.3关于 this075
4.2函数的属性和方法080
4.2.1length 属性080
4.2.2name080
4.3参数080
4.3.1按值传递081
4.3.2arguments082
4.3.3Rest 参数(剩余参数)083
4.3.4箭头函数中的 arguments 对象083
4.3.5默认参数083
4.4递归084
4.5闭包086
4.5.1什么是闭包087
4.5.2实践中的闭包087
4.6IIFE089
4.7高阶函数090
4.7.1回调函数090
4.7.2偏函数091
4.7.3柯里化091
4.7.4纯函数092
第5章数组093
5.1定义094
5.2多维数组094
5.3length 属性094
5.4方法094
5.4.1Array.isArray()095
5.4.2Array.of()095
5.4.3Array.from()095
5.5实例方法099
5.5.1concat()099
5.5.2copyWithin()099
5.5.3keys()、values() 和 entries()100
5.5.4forEach() 和 map()100
5.5.5every() 和 some()101
5.5.6filter()101
5.5.7fill()102
5.5.8find() 和 findIndex()102
5.5.9includes()102
5.5.10indexOf() 和 lastIndexOf()103
5.5.11join() 和 splice()103
5.5.12push()、pop()、unshift() 和 shift()103
5.5.13reduce() 和 reduceRight()104
5.5.14reverse()104
5.5.15slice()104
5.5.16sort()104
5.5.17toString()105
5.5.18toLocaleString()105
第6章对象106
6.1定义107
6.1.1定义对象的属性107
6.1.2定义对象的方法108
6.1.3getter 和 setter108
6.2属性109
6.2.1原型及原型链109
6.2.2 好的类型检测110
6.2.3构造函数111
6.3方法112
6.3.1Object.getPrototypeOf() 和 Object.setPrototypeOf()112
6.3.2Object.create()112
6.3.3Object.assign()112
6.3.4Object.defineProperty() 和 Object.getOwnPropertyDescriptor()113
6.3.5Object.defineProperties()和Object.getOwnPropertyDescriptors()114
6.3.6Object.keys()、Object.values() 和 Object.entries()114
6.3.7Object.freeze() 和 Object.isFrozen()115
6.3.8Object.seal() 和 Object.isSealed()115
6.3.9Object.preventExtensions() 和 Object.isExtensible()116
6.3.10Object.is()116
6.3.11Object.getOwnPropertyNames()116
6.3.12Object.getOwnPropertySymbols()117
第7章类118
7.1定义119
7.2constructor119
7.2.1实例化119
7.2.2类的方法120
7.2.3this 指向120
7.2.4constructor 属性121
7.3继承122
7.4静态方法123
第8章JSON125
8.1简介126
8.2JSON的解析126
8.3JSON的序列化129
第9章BOM132
9.1window133
9.1.1setTimeout133
9.1.2setInterval133
9.1.3定时器的问题134
9.2history134
9.2.1history134
9.2.2ajax 的前进后退135
9.3location137
9.3.1assign() 和 replace()138
9.3.2reload()138
9.3.3属性138
9.4navigator139
0章DOM140
10.1DOM 简介141
10.1.1节点141
10.1.2节点类型141
10.2节点查找142
10.2.1获取单个节点 Node142
10.2.2获取节点集合 NodeList143
10.3节点操作146
10.3.1创建节点146
10.3.2新增节点147
10.3.3删除节点148
10.3.4修改节点149
10.4属性操作149
10.4.1getAttribute()149
10.4.2setAttribute()150
10.4.3点符号150
10.4.4classList 属性150
10.5内容操作151
10.6样式操作152
10.6.1getComputedStyle()152
10.6.2设置CSS样式152
1章事件153
11.1事件处理154
11.1.1addEventListener()154
11.1.2removeEventListener()155
11.2事件流156
11.3事件对象与事件类型157
11.3.1阻止默认行为159
11.3.2阻止事件冒泡159
11.3.3事件委托160
11.4自定义事件161
2章Ajax163
12.1Ajax 简介164
12.1.1XMLHttpRequest164
12.1.2Fetch167
12.2HTTP168
12.2.1客户端、服务端168
12.2.2代理服务器168
12.2.3HTTP是无状态,有会话的168
12.2.4HTTP 流169
12.2.5http1.0的问题170
12.4跨域171
12.4.1浏览器的同源策略171
12.4.2jsonp171
12.4.3img ping171
12.4.4window.name172
12.4.5postMessage173
12.4.6CORS174
3章模块和构建工具175
13.1模块176
13.1.1CommonJS176
13.1.2AMD177
13.1.3CMD177
13.1.4UMD178
13.2ES6中的模块178
13.2.1export178
13.2.2import179
13.2.3导入、导出时的重命名179
13.3构建工具180
13.3.1npm 的使用180
13.3.2npm 发布包181
4章客户端存储184
14.1cookie185
14.1.1什么是 cookie185
14.1.2有效期和作用域185
14.1.3关于 session186
14.1.4关于 token186
14.2本地存储186
14.2.1localStorage187
14.2.2.和 [ ] 操作188
14.2.3sessionStorage188
14.3IndexedDB188
5章性能优化191
15.1减少请求数192
15.1.1合并代码192
15.1.2CSS Sprite193
15.1.3data url193
15.2减少代码体积194
15.3缓存文件196
15.3.1浏览器缓存196
15.3.2客户端缓存197
15.4使用内容分发网络 CDN197
15.6延迟加载197
15.6.1实现198
15.6.2完整代码198
15.7避免重定向199
15.8服务端gzip199
15.8.1什么是 gzip199
15.8.2gzip 压缩原理200
6章类库和框架201
16.1预处理器202
16.2辅助库202
16.2.1jQuery202
16.2.2axios203
16.2.3Underscore203
16.2.4lodash204
16.2.5Moment.js204
16.3框架205
16.3.1Angular205
16.3.2React205
16.3.3Vue.js205
附录 ACanvas206
附录 B前端中的 SEO209
B.1robots.txt209
B.2title209
B.3meta210
B.4其他 HTML 标签210
B.5结构化数据标记210
附录 C编程风格212
C.1减少全局变量污染212
C.2避免使用 var212
C.3使用字面量212
C.4字符串213
C.5解构213
C.6函数213
C.7模块214
C.8其他214
· · · · · · (收起)
1.1 简介002
1.2 起源003
1.3 实现004
1.3.1ECMAScript004
1.3.2BOM005
1.3.3DOM005
1.4 使用005
1.4.1内联的 005
1.4.2外部的 006
1.4.3行内的 007
第2章准备工作008
2.1开发工具009
2.1.1Sublime Text009
2.1.2Visual Studio Code010
2.1.3WebStorm011
2.1.4Atom012
2.2Chrome 开发者工具012
2.2.1信息类方法013
2.2.2清除历史记录013
2.2.3保留历史记录014
第3章语法015
3.1基本语法016
3.1.1语句016
3.1.2注释016
3.1.3标识符017
3.2变量和变量作用域019
3.2.1变量019
3.2.2声明变量019
3.2.3非声明变量024
3.3数据类型025
3.3.1内存空间025
3.3.2基本数据类型与引用数据类型025
3.3.3浅拷贝与深拷贝027
3.3.4typeof 与 instanceof029
3.3.5类型转换031
3.3.6基本包装类型035
3.4字符串036
3.4.1字符串的特点039
3.4.2length 属性039
3.4.3实例方法039
3.5运算符048
3.5.1算术运算符048
3.5.2逻辑运算符050
3.5.3比较运算符051
3.5.4三元运算符052
3.5.5赋值053
3.5.6位运算符054
3.5.7异步操作符 async function055
3.5.8其他运算符059
3.5.9运算符优先级060
3.6条件语句062
3.6.1if 语句062
3.6.2switch 语句063
3.6.3三元运算符064
3.7循环语句065
3.7.1for065
3.7.2while065
3.7.3for…in067
3.7.4for…of068
3.7.5break 和 continue 语句068
3.8错误处理069
3.8.1try…catch069
3.8.2throw070
3.9严格模式070
第4章函数072
4.1定义073
4.1.1返回值073
4.1.2箭头函数(Arrow Function)074
4.1.3关于 this075
4.2函数的属性和方法080
4.2.1length 属性080
4.2.2name080
4.3参数080
4.3.1按值传递081
4.3.2arguments082
4.3.3Rest 参数(剩余参数)083
4.3.4箭头函数中的 arguments 对象083
4.3.5默认参数083
4.4递归084
4.5闭包086
4.5.1什么是闭包087
4.5.2实践中的闭包087
4.6IIFE089
4.7高阶函数090
4.7.1回调函数090
4.7.2偏函数091
4.7.3柯里化091
4.7.4纯函数092
第5章数组093
5.1定义094
5.2多维数组094
5.3length 属性094
5.4方法094
5.4.1Array.isArray()095
5.4.2Array.of()095
5.4.3Array.from()095
5.5实例方法099
5.5.1concat()099
5.5.2copyWithin()099
5.5.3keys()、values() 和 entries()100
5.5.4forEach() 和 map()100
5.5.5every() 和 some()101
5.5.6filter()101
5.5.7fill()102
5.5.8find() 和 findIndex()102
5.5.9includes()102
5.5.10indexOf() 和 lastIndexOf()103
5.5.11join() 和 splice()103
5.5.12push()、pop()、unshift() 和 shift()103
5.5.13reduce() 和 reduceRight()104
5.5.14reverse()104
5.5.15slice()104
5.5.16sort()104
5.5.17toString()105
5.5.18toLocaleString()105
第6章对象106
6.1定义107
6.1.1定义对象的属性107
6.1.2定义对象的方法108
6.1.3getter 和 setter108
6.2属性109
6.2.1原型及原型链109
6.2.2 好的类型检测110
6.2.3构造函数111
6.3方法112
6.3.1Object.getPrototypeOf() 和 Object.setPrototypeOf()112
6.3.2Object.create()112
6.3.3Object.assign()112
6.3.4Object.defineProperty() 和 Object.getOwnPropertyDescriptor()113
6.3.5Object.defineProperties()和Object.getOwnPropertyDescriptors()114
6.3.6Object.keys()、Object.values() 和 Object.entries()114
6.3.7Object.freeze() 和 Object.isFrozen()115
6.3.8Object.seal() 和 Object.isSealed()115
6.3.9Object.preventExtensions() 和 Object.isExtensible()116
6.3.10Object.is()116
6.3.11Object.getOwnPropertyNames()116
6.3.12Object.getOwnPropertySymbols()117
第7章类118
7.1定义119
7.2constructor119
7.2.1实例化119
7.2.2类的方法120
7.2.3this 指向120
7.2.4constructor 属性121
7.3继承122
7.4静态方法123
第8章JSON125
8.1简介126
8.2JSON的解析126
8.3JSON的序列化129
第9章BOM132
9.1window133
9.1.1setTimeout133
9.1.2setInterval133
9.1.3定时器的问题134
9.2history134
9.2.1history134
9.2.2ajax 的前进后退135
9.3location137
9.3.1assign() 和 replace()138
9.3.2reload()138
9.3.3属性138
9.4navigator139
0章DOM140
10.1DOM 简介141
10.1.1节点141
10.1.2节点类型141
10.2节点查找142
10.2.1获取单个节点 Node142
10.2.2获取节点集合 NodeList143
10.3节点操作146
10.3.1创建节点146
10.3.2新增节点147
10.3.3删除节点148
10.3.4修改节点149
10.4属性操作149
10.4.1getAttribute()149
10.4.2setAttribute()150
10.4.3点符号150
10.4.4classList 属性150
10.5内容操作151
10.6样式操作152
10.6.1getComputedStyle()152
10.6.2设置CSS样式152
1章事件153
11.1事件处理154
11.1.1addEventListener()154
11.1.2removeEventListener()155
11.2事件流156
11.3事件对象与事件类型157
11.3.1阻止默认行为159
11.3.2阻止事件冒泡159
11.3.3事件委托160
11.4自定义事件161
2章Ajax163
12.1Ajax 简介164
12.1.1XMLHttpRequest164
12.1.2Fetch167
12.2HTTP168
12.2.1客户端、服务端168
12.2.2代理服务器168
12.2.3HTTP是无状态,有会话的168
12.2.4HTTP 流169
12.2.5http1.0的问题170
12.4跨域171
12.4.1浏览器的同源策略171
12.4.2jsonp171
12.4.3img ping171
12.4.4window.name172
12.4.5postMessage173
12.4.6CORS174
3章模块和构建工具175
13.1模块176
13.1.1CommonJS176
13.1.2AMD177
13.1.3CMD177
13.1.4UMD178
13.2ES6中的模块178
13.2.1export178
13.2.2import179
13.2.3导入、导出时的重命名179
13.3构建工具180
13.3.1npm 的使用180
13.3.2npm 发布包181
4章客户端存储184
14.1cookie185
14.1.1什么是 cookie185
14.1.2有效期和作用域185
14.1.3关于 session186
14.1.4关于 token186
14.2本地存储186
14.2.1localStorage187
14.2.2.和 [ ] 操作188
14.2.3sessionStorage188
14.3IndexedDB188
5章性能优化191
15.1减少请求数192
15.1.1合并代码192
15.1.2CSS Sprite193
15.1.3data url193
15.2减少代码体积194
15.3缓存文件196
15.3.1浏览器缓存196
15.3.2客户端缓存197
15.4使用内容分发网络 CDN197
15.6延迟加载197
15.6.1实现198
15.6.2完整代码198
15.7避免重定向199
15.8服务端gzip199
15.8.1什么是 gzip199
15.8.2gzip 压缩原理200
6章类库和框架201
16.1预处理器202
16.2辅助库202
16.2.1jQuery202
16.2.2axios203
16.2.3Underscore203
16.2.4lodash204
16.2.5Moment.js204
16.3框架205
16.3.1Angular205
16.3.2React205
16.3.3Vue.js205
附录 ACanvas206
附录 B前端中的 SEO209
B.1robots.txt209
B.2title209
B.3meta210
B.4其他 HTML 标签210
B.5结构化数据标记210
附录 C编程风格212
C.1减少全局变量污染212
C.2避免使用 var212
C.3使用字面量212
C.4字符串213
C.5解构213
C.6函数213
C.7模块214
C.8其他214
· · · · · · (收起)
还没人写过短评呢
还没人写过短评呢