你不知道的JavaScript(上卷)
查字典图书网
当前位置: 查字典 > 图书网 > 编程> 你不知道的JavaScript(上卷)

你不知道的JavaScript(上卷)

你不知道的JavaScript(上卷)

9.4

作者: [美] Kyle Simpson
出版社: 人民邮电出版社
译者: 赵望野  |  梁 杰  |  梁杰
出版年: 2015-4
页数: 195
定价: 49.00元
装帧: 平装
ISBN: 9787115385734

我要收藏

内容简介:

JavaScript语言有很多复杂的概念,但却用简单的方式体现出来(比如回调函数),因此,JavaScript开发者无需理解语言内部的原理,就能编写出功能全面的程序;就像收音机一样,你无需理解里面的管子和线圈都是做什么用的,只要会操作收音机上的按键,就可以收听你喜欢的节目。然而,JavaScript的这些复杂精妙的概念才是语言的精髓,即使是经验丰富的JavaScript开发者,如果没有认真学习也无法真正理解语言本身的特性。正是因为绝大多数人不求甚解,一遇到出乎意料的行为就认为是语言本身有缺陷,进而把相关的特性加入黑名单,久而久之就排除了这门语言的多样性,人为地使它变得不完整、不安全。

“你不知道的JavaScript”系列就是要让不求甚解的JavaScript开发者迎难而上,深入语言内部,弄清楚JavaScript每一个零部件的用途。本书介绍了该系列的两个主题:“作用域和闭包”以及“this和对象原型”。掌握了这些知识之后,无论什么技术、框架和流行词语,你都能轻松理解。

作者简介:

作者简介:

Kyle Simpson

推崇开放的互联网,对JavaScript、HTML5、实时/端对端通信和Web性能有深入研究。他是技术书作家、技术培训师、讲师和开源社区的活跃成员。

译者简介:

赵望野

前端工程师,前端基础技术组leader,曾经负责豌豆荚2.0的前端架构设计和主要开发工作,目前负责Front-end Technical Infrastructure的建设。新浪微博@赵望野。负责本书第一部分“作用域和闭包”的翻译。

梁杰

北京航空航天大学计算机科学与技术专业大四学生。热爱JavaScript、Python,热爱开源,喜欢做各种各样有趣的事情。负责本书第二部分“this和对象原型”的翻译。

目录:

前言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 eval17

2.2.2 with18

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 with31

3.4.2 try/catch31

3.4.3 let32

3.4.4 const35

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章 关于this74

1.1 为什么要用this74

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 被忽略的this96

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和Setter117

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.prototype144

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中的Class189

文章试读:我们学习作用域的方式是将这个过程模拟成几个人物之间的对话。那么,由谁进行这场对话呢? 1.2.1  演员表 首先介绍将要参与到对程序var a = 2; 进行处理的过程中的演员们,这样才能理解接下来将要听到的对话。 • 引擎 从头到尾负责整个JavaScript 程序的编译及执行过程。 • 编译器 引擎的好朋友之一,负责语法分析及代码生成等脏活累活(详见前一节的内容)。 •...

(查看全部试读)

展开全文
随机来一本书

推荐文章

猜你喜欢

附近的人在看

推荐阅读

拓展阅读

热门标签:
我想说两句
我要写长评
 想读     在读     读过   
评价:
标签(多个标签以“,”分开):