你不知道的JavaScript(上卷)
- ISBN:9787115385734
- 装帧:一般胶版纸
- 册数:暂无
- 重量:暂无
- 开本:16开
- 页数:195
- 出版时间:2021-06-01
- 条形码:9787115385734 ; 978-7-115-38573-4
本书特色
JavaScript语言有很多复杂的概念,但却用简单的方式体现出来(比如回调函数),因此,JavaScript开发 者无需理解语言内部的原理,就能编写出功能全面的程序;就像收音机一样,你无需理解里面的管子和线圈都是做什么用的,只要会操作收音机上的按键,就可以收听你喜欢的节目。然而,JavaScript的这些复杂精妙的概念才是语言的精髓,即使是经验丰富的JavaScript开发 者,如果没有认真学习也无法真正理解语言本身的特性。正是因为大多数人不求甚解,一遇到出乎意料的行为就认为是语言本身有缺陷,进而把相关的特性加入黑名单,久而久之就排除了这门语言的多样性,人为地使它变得不完整、不安全。“你不知道的JavaScript”系列是要让不求甚解的JavaScript开发 者迎难而上,深入语言内部,弄清楚JavaScript每一个零部件的用途。本书介绍了该系列的两个主题:“作用域和闭包”以及“this和对象原型”。掌握了这些知识之后,无论什么技术、框架和流行词语,你都能轻松理解。
内容简介
很多人对JavaScript这门语言的印象都是简单易学,很容易上手。虽然JavaScript语言本身有很多复杂的概念,但语言的使用者不必深入理解这些概念就可以编写出功能全面的应用。殊不知,这些复杂精妙的概念才是语言的精髓,即使是经验丰富的JavaScript开发人员,如果没有认真学习的话也无法真正理解它们。在本书中,我们要直面当前JavaScript开 发者“不求甚解”的大趋势,深入理解语言内部的机制。 《你不知道的JavaScript(上卷)》既适合JavaScript语言初学者阅读,又适合经验丰富的JavaScript开发人员深入学习。
目录
前言 VIII
第 一部分 作用域和闭包
序 2
第 1章 作用域是什么 4
1.1 编译原理 4
1.2 理解作用域 6
1.2.1 演员表 6
1.2.2 对话 6
1.2.3 编译器有话说 7
1.2.4 引擎和作用域的对话 9
1.2.5 小测验 10
1.3 作用域嵌套 10
1.4 异常 12
1.5 小结 12
第 2章 词法作用域 14
2.1 词法阶段 14
2.2 欺骗词法 17
2.2.1 eval 17
2.2.2 with 18
2.2.3 性能 20
2.3 小结 21
第3章 函数作用域和块作用域 22
3.1 函数中的作用域 22
3.2 隐藏内部实现 23
3.3 函数作用域 26
3.3.1 匿名和具名 27
3.3.2 立即执行函数表达式 28
3.4 块作用域 30
3.4.1 with 31
3.4.2 try/catch 31
3.4.3 let 32
3.4.4 const 35
3.5 小结 36
第4章 提升 37
4.1 先有鸡还是先有蛋 37
4.2 编译器再度来袭 38
4.3 函数优先 40
4.4 小结 41
第5章 作用域闭包 43
5.1 启示 43
5.2 实质问题 44
5.3 现在我懂了 47
5.4 循环和闭包 48
5.5 模块 51
5.5.1 现代的模块机制 54
5.5.2 未来的模块机制 56
5.6 小结 57
附录A 动态作用域 58
附录B 块作用域的替代方案 60
附录C this词法 64
附录D 致谢 67
第 二部分 this和对象原型
序 72
第 1章 关于this 74
1.1 为什么要用this 74
1.2 误解 76
1.2.1 指向自身 76
1.2.2 它的作用域 79
1.3 this到底是什么 80
1.4 小结 80
第 2章 this全面解析 82
2.1 调用位置 82
2.2 绑定规则 83
2.2.1 默认绑定 83
2.2.2 隐式绑定 85
2.2.3 显式绑定 87
2.2.4 new绑定 90
2.3 优先级 91
2.4 绑定例外 95
2.4.1 被忽略的this 96
2.4.2 间接引用 97
2.4.3 软绑定 98
2.5 this词法 99
2.6 小结 101
第3章 对象 102
3.1 语法 102
3.2 类型 103
3.3 内容 105
3.3.1 可计算属性名 106
3.3.2 属性与方法 107
3.3.3 数组 108
3.3.4 复制对象 109
3.3.5 属性描述符 111
3.3.6 不变性 114
3.3.7 [[Get]] 115
3.3.8 [[Put]] 116
3.3.9 Getter和Setter 117
3.3.10 存在性 119
3.4 遍历 121
3.5 小结 124
第4章 混合对象“类” 126
4.1 类理论 126
4.1.1 “类”设计模式 127
4.1.2 JavaScript中的“类” 128
4.2 类的机制 128
4.2.1 建造 128
4.2.2 构造函数 130
4.3 类的继承 130
4.3.1 多态 132
4.3.2 多重继承 134
4.4 混入 134
4.4.1 显式混入 135
4.4.2 隐式混入 139
4.5 小结 140
第5章 原型 142
5.1 [[Prototype]] 142
5.1.1 Object.prototype 144
5.1.2 属性设置和屏蔽 144
5.2 “类” 146
5.2.1 “类”函数 146
5.2.2 “构造函数” 149
5.2.3 技术 151
5.3 (原型)继承 153
5.4 对象关联 159
5.4.1 创建关联 159
5.4.2 关联关系是备用 161
5.5 小结 162
第6章 行为委托 164
6.1 面向委托的设计 165
6.1.1 类理论 165
6.1.2 委托理论 166
6.1.3 比较思维模型 170
6.2 类与对象 173
6.2.1 控件“类” 174
6.2.2 委托控件对象 176
6.3 更简洁的设计 178
6.4 更好的语法 182
6.5 内省 185
6.6 小结 187
附录A ES6中的Class 189
作者简介
Kyle Simpson 推崇开放的互联网,对JavaScript、HTML5、实时/端对端通信和Web性能有深入研究。他是技术书作家、技术培训师、讲师和开源社区的活跃成员。
-
有限与无限的游戏:一个哲学家眼中的竞技世界
¥37.4¥68.0 -
硅谷之火-人与计算机的未来
¥14.3¥39.8 -
全图解零基础word excel ppt 应用教程
¥12.0¥48.0 -
机器学习
¥59.4¥108.0 -
深度学习的数学
¥43.5¥69.0 -
智能硬件项目教程:基于ARDUINO(第2版)
¥37.7¥65.0 -
元启发式算法与背包问题研究
¥38.2¥49.0 -
AI虚拟数字人:商业模式+形象创建+视频直播+案例应用
¥62.9¥89.8 -
UNIX环境高级编程(第3版)
¥164.9¥229.0 -
剪映AI
¥52.8¥88.0 -
深度学习高手笔记 卷2:经典应用
¥90.9¥129.8 -
纹样之美:中国传统经典纹样速查手册
¥77.4¥109.0 -
UG NX 12.0数控编程
¥24.8¥45.0 -
MATLAB计算机视觉与深度学习实战(第2版)
¥90.9¥128.0 -
界面交互设计理论研究
¥30.8¥56.0 -
UN NX 12.0多轴数控编程案例教程
¥25.8¥38.0 -
微机组装与系统维护技术教程(第二版)
¥37.8¥43.0 -
Go 语言运维开发 : Kubernetes 项目实战
¥48.2¥79.0 -
明解C语言:实践篇
¥62.9¥89.8 -
Linux服务器架设实战(Linux典藏大系)
¥84.5¥119.0