《Effective JavaScript 编写高质量JavaScript代码的68个有效方法》PDF下载

  • 购买积分:9 如何计算积分?
  • 作  者:(美)DavidHerman
  • 出 版 社:北京:机械工业出版社
  • 出版年份:2014
  • ISBN:9787111446231
  • 页数:166 页
图书介绍:本书组织了68条行之有效的方法来更好地编写JavaScript代码,这些方法都有一些具体的例子支撑。你将学到如何为某个项目选择正确的编程风格、管理一些超出意料的问题以及更成功地使用JavaScript编程完成从数据结构到并发的方方面面的工作。

第1章 让自己习惯JavaScript 1

第1条:了解你使用的JavaScript版本 1

第2条:理解JavaScript的浮点数 6

第3条:当心隐式的强制转换 8

第4条:原始类型优于封装对象 13

第5条:避免对混合类型使用==运算符 14

第6条:了解分号插入的局限 16

第7条:视字符串为16位的代码单元序列 21

第2章 变量作用域 25

第8条:尽量少用全局对象 25

第9条:始终声明局部变量 27

第10条:避免使用with 28

第11条:熟练掌握闭包 31

第12条:理解变量声明提升 34

第13条:使用立即调用的函数表达式创建局部作用域 36

第14条:当心命名函数表达式笨拙的作用域 38

第15条:当心局部块函数声明笨拙的作用域 41

第16条:避免使用eval创建局部变量 43

第17条:间接调用eval函数优于直接调用 44

第3章 使用函数 46

第18条:理解函数调用、方法调用及构造函数调用之间的不同 46

第19条:熟练掌握高阶函数 48

第20条:使用call方法自定义接收者来调用方法 51

第21条:使用apply方法通过不同数量的参数调用函数 53

第22条:使用arguments创建可变参数的函数 54

第23条:永远不要修改arguments对象 56

第24条:使用变量保存arguments的引用 58

第25条:使用bind方法提取具有确定接收者的方法 59

第26条:使用bind方法实现 函数柯里化 61

第27条:使用闭包而不是字符串 来封装代码 62

第28条:不要信赖函数对象的toString方法 63

第29条:避免使用非标准的栈 检查属性 65

第4章 对象和原型 67

第30条:理解prototype、 getPrototype Of和_proto_之间的不同 67

第31条:使用Object.getPrototype Of函数而不要使用_proto_属性 69

第32条:始终不要修改_proto_属性 70

第33条:使构造函数与new操作符无关 71

第34条:在原型中存储方法 73

第35条:使用闭包存储私有数据 75

第36条:只将实例状态存储在实例对象中 76

第37条:认识到this变量的隐式绑定问题 78

第38条:在子类的构造函数中调用父类的构造函数 81

第39条:不要重用父类的属性名 84

第40条:避免继承标准类 86

第41条:将原型视为实现细节 88

第42条:避免使用轻率的猴子补丁 88

第5章 数组和字典 91

第43条:使用Object的直接实例构造轻量级的字典 91

第44条:使用null原型以防止原型污染 94

第45条:使用hasOwnProperty方法以避免原型污染 95

第46条:使用数组而不要使用字典来存储有序集合 99

第47条:绝不要在Object.prototype中增加可枚举的属性 102

第48条:避免在枚举期间修改对象 103

第49条:数组迭代要优先使用for循环而不是for…in循环 108

第50条:迭代方法优于循环 109

第51条:在类数组对象上复用通用的数组方法 113

第52条:数组字面量优于数组构造函数 114

第6章 库和API设计 116

第53条:保持一致的约定 116

第54条:将undefined看做“没有值” 117

第55条:接收关键字参数的选项对象 121

第56条:避免不必要的状态 125

第57条:使用结构类型设计灵活的接口 127

第58条:区分数组对象和类数组对象 130

第59条:避免过度的强制转换 134

第60条:支持方法链 137

第7章 并发 140

第61条:不要阻塞I/O事件队列 140

第62条:在异步序列中使用嵌套或命名的回调函数 143

第63条:当心丢弃错误 147

第64条:对异步循环使用递归 150

第65条:不要在计算时阻塞事件队列 153

第66条:使用计数器来执行并行操作 156

第67条:绝不要同步地调用异步的回调函数 160

第68条:使用promise模式清洁异步逻辑 162