- ISBN:9787302602118
- 装帧:一般胶版纸
- 册数:暂无
- 重量:暂无
- 开本:其他
- 页数:490
- 出版时间:2022-04-01
- 条形码:9787302602118 ; 978-7-302-60211-8
本书特色
JavaScript是一门快速发展的语言,对于有经验的开发人员来说,如要掌握所有新添加的特性,可能会面临挑战。本书不仅会带你探索世界上语言的新特性,而且会向你展示如何跟踪这门语言的后续发展。本书首先介绍将新特性添加到 JavaScript 的流程,包括这个流程是如何管理的,以及由谁来管理;随后深入详细地描述每个新特性或者有调整的旧特性,并阐述示例用法、可能的陷阱;本书还将提供专业意见,教你使用新特性代替旧用法。
内容简介
本书主要内容 l 涵盖ES2015~ES2020中JavaScript的所有新特性以及下一版的预览。 l 探索**的语法:空值合并、可选链、let和const、类语法、私有方法、私有字段、new.target、数字分隔符、BigInt、解构、默认参数、箭头函数、异步函数、await、生成器函数、…(rest和spread操作符)、模板字面量、二进制和八进制字面量、**(求幂运算符)、计算属性/方法名、for-of、for-await-of、属性的简写语法等。 l 详细介绍新特性和模式:模块、Promise、迭代、生成器、Symbol、代理、反射、类型化数组、Atomics、共享内存、WeakMap、WeakSet等。 l 揭示常见的陷阱并阐述如何避免它们。 l 展示如何跟进和参与JavaScript的改进流程。 l 介绍如何在新特性获得广泛支持之前使用它们。
目录
第1章 ES2015~ES2020及后续版本的
新特性 1
1.1 名称、定义和术语 2
1.1.1 Ecma?ECMAScript?TC39? 2
1.1.2 ES6?ES7?ES2015?ES2020? 2
1.1.3 JavaScript“引擎”、浏览器及其他 3
1.2 什么是“新特性” 3
1.3 新特性的推动流程 5
1.3.1 谁负责 5
1.3.2 流程 5
1.3.3 参与 6
1.3.4 跟上新特性的步伐 7
1.4 旧环境中使用新特性 8
1.5 本章小结 12
第2章 块级作用域声明:let和const 13
2.1 let和const的介绍 13
2.2 真正的块级作用域 14
2.3 重复声明将抛出错误 15
2.4 提升和暂时性死区 15
2.5 一种新的全局变量 17
2.6 const:JavaScript的常量 19
2.6.1 const基础 19
2.6.2 常量引用的对象仍然是可变的 20
2.7 循环中的块级作用域 21
2.7.1 “循环中的闭包”问题 21
2.7.2 绑定:变量、常量以及其他
标识符的工作方式 23
2.7.3 while和do-while循环 27
2.7.4 性能影响 28
2.7.5 循环块中的const 29
2.7.6 for-in循环中的const 29
2.8 旧习换新 30
2.8.1 用const或let替代var 30
2.8.2 缩小变量的作用域 30
2.8.3 用块级作用域替代匿名函数 30
第3章 函数的新特性 33
3.1 箭头函数和this、super等词法 34
3.1.1 箭头函数语法 34
3.1.2 箭头函数和this词法 37
3.1.3 箭头函数不能被用作构造函数 38
3.2 默认参数值 38
3.2.1 默认值是表达式 39
3.2.2 默认值在自己的作用域中被计算 40
3.2.3 默认值不会增加函数的arity 42
3.3 “rest”参数 42
3.4 参数列表和函数调用中的
尾后逗号 44
3.5 函数的name属性 45
3.6 在语句块中声明函数 46
3.6.1 在语句块中声明函数:标准语义 48
3.6.2 在语句块中声明函数:
传统Web语义 49
3.7 旧习换新 51
3.7.1 使用箭头函数替代各种访问this
值的变通方式 51
3.7.2 在不使用this或arguments时,
回调函数使用箭头函数 52
3.7.3 考虑在更多地方使用箭头函数 52
3.7.4 当调用者需要控制this的值时,
不要使用箭头函数 53
3.7.5 使用参数默认值,而不是
代码实现 53
3.7.6 使用“rest”参数替代arguments
关键字 53
3.7.7 如有必要,考虑使用尾后逗号 53
第4章 类 55
4.1 类的概念 55
4.2 介绍新的类语法 56
4.2.1 添加构造函数 57
4.2.2 添加实例属性 59
4.2.3 添加原型方法 59
4.2.4 添加静态方法 61
4.3 添加访问器属性 61
4.4 对比新语法和旧语法 64
4.5 创建子类 66
4.6 关键字super 69
4.6.1 编写子类构造函数 69
4.6.2 继承和访问超类原型的属性和
方法 70
4.6.3 继承静态方法 73
4.6.4 静态方法中的super 75
4.6.5 返回新实例的方法 75
4.6.6 内置对象的子类 79
4.6.7 super的使用 81
4.7 移除Object.prototype 83
4.8 new.target 84
4.9 类声明与类表达式 87
4.9.1 类声明 87
4.9.2 类表达式 88
4.10 更多内容 89
4.11 旧习换新 89
第5章 对象的新特性 91
5.1 可计算属性名 91
5.2 属性的简写语法 92
5.3 获取和设置对象原型 93
5.3.1 Object.setPrototypeOf 93
5.3.2 浏览器环境中的__proto__属性 94
5.3.3 浏览器环境中的__proto__字面量
属性名 94
5.4 对象方法的简写语法,以及类
之外的super 95
5.5 Symbol 97
5.5.1 定义Symbol的原因 97
5.5.2 创建和使用Symbol 99
5.5.3 Symbol并不用于私有属性 99
5.5.4 全局Symbol 100
5.5.5 内置的Symbol值 103
5.6 对象的新增方法 104
5.6.1 Object.assign 104
5.6.2 Object.is 105
5.6.3 Object.values 105
5.6.4 Object.entries 106
5.6.5 Object.fromEntries 106
5.6.6 Object.getOwnPropertySymbols 106
5.6.7 Object.getOwnPropertyDescriptors 106
5.7 Symbol.toPrimitive 107
5.8 属性顺序 109
5.9 属性扩展语法 110
5.10 旧习换新 111
5.10.1 创建对象时对动态变量使用可
计算属性名 111
5.10.2 从同名变量初始化对象时,
使用简写语法 111
5.10.3 使用Object.assign替代自定义的
扩展方法或者显式复制所有
属性 112
5.10.4 基于已有对象创建新对象时,
使用属性扩展语法 112
5.10.5 使用Symbol避免属性名冲突 112
5.10.6 使用Object.getPrototypeOf/
setPrototypeOf替代__proto__ 112
5.10.7 使用对象方法的简写语法来
定义对象中的方法 112
第6章 可迭代对象、迭代器、for-of循环、
可迭代对象的展开语法和
生成器 115
第18章 即将推出的类特性 435
18.1 公有和私有的类字段、方法和
访问器 435
18.1.1 公有字段(属性)定义 436
18.1.2 私有字段 440
18.1.3 私有实例方法和访问器 446
18.1.4 公有静态字段、私有静态字段和
私有静态方法 450
18.2 旧习换新 452
18.2.1 使用属性定义,而不是在构造
函数中创建属性(在适当的
情况下) 452
18.2.2 使用私有类字段,而不是前缀
(在适当的情况下) 453
18.2.3 使用私有方法(而不是类外的
函数)进行私有操作 453
第19章 展望未来 457
19.1 顶层await 458
19.1.1 概述和用例 458
19.1.2 示例 459
19.1.3 错误处理 463
19.2 WeakRef和清理回调 464
19.2.1 WeakRef 464
19.2.2 清理回调 466
19.3 正则表达式匹配索引 471
19.4 String.prototype.replaceAll 472
19.5 Atomics的asyncWait方法 472
19.6 其他语法微调 473
19.6.1 数字分隔符 473
19.6.2 支持hashbang 474
19.7 废弃旧的正则表达式特性 474
19.8 感谢阅读 475
附录 出色的特性及对应的章
(向J.K. Rowling致歉) 477
作者简介
T. J. Crowder是一位拥有30年经验的软件工程师。在他的整个职业生涯中,他至少有一半时间是在使用JavaScript从事开发工作。他经营着软件承包和产品公司Farsight Software。他经常在Stack Overflow上为人们提供帮助,他是十大贡献者之一和JavaScript标签的顶级贡献者。当他不工作或写作时,他总是与他美丽的、支持他的妻子和出色的儿子共度美好时光。
-
全图解零基础word excel ppt 应用教程
¥15.6¥48.0 -
有限与无限的游戏:一个哲学家眼中的竞技世界
¥37.4¥68.0 -
硅谷之火-人与计算机的未来
¥12.7¥39.8 -
机器学习
¥59.4¥108.0 -
情感计算
¥66.8¥89.0 -
LINUX企业运维实战(REDIS+ZABBIX+NGINX+PROMETHEUS+GRAFANA+LNMP)
¥48.3¥69.0 -
AI虚拟数字人:商业模式+形象创建+视频直播+案例应用
¥62.9¥89.8 -
LINUX实战——从入门到精通
¥48.3¥69.0 -
UNIX环境高级编程(第3版)
¥164.9¥229.0 -
剪映AI
¥52.8¥88.0 -
数据驱动的工业人工智能:建模方法与应用
¥68.3¥99.0 -
深度学习高手笔记 卷2:经典应用
¥90.9¥129.8 -
纹样之美:中国传统经典纹样速查手册
¥76.3¥109.0 -
UG NX 12.0数控编程
¥24.8¥45.0 -
MATLAB计算机视觉与深度学习实战(第2版)
¥90.9¥128.0 -
UN NX 12.0多轴数控编程案例教程
¥24.3¥38.0 -
微机组装与系统维护技术教程(第二版)
¥37.8¥43.0 -
Go 语言运维开发 : Kubernetes 项目实战
¥38.7¥79.0 -
明解C语言:实践篇
¥62.9¥89.8 -
Linux服务器架设实战(Linux典藏大系)
¥84.5¥119.0