深入理解JavaScript

    深入理解JavaScript

    大小:84.69M

    更新时间:23-09-02

    系统:Pc

    开始下载

    深入理解JavaScript是针对JavaScript初学者,帮助读者掌握JavaScript开发的精髓的JS开发深入指南,由美国程序员罗彻麦尔编著,全书通过一章章循序渐进的阅读帮助读者掌握JavaScript开发的精髓。每一章都是从教授语言的一个主题开始,并且都给出了实践以及解决实际缺陷的指南,然后深入到相关的信息,能够帮助入门的程序员理解基础知识,掌握核心实践,甚至深入了解一些实践方法的优缺点,做到知其然且知其所以然,欢迎js爱好者免费下载阅读。

    全书简介

    《深入理解javascript》是一本全面、深入介绍JavaScript语言的学习指南。本书共分四个部分,第1部分帮助读者快速入手,掌握基本的JavaScript编程要点;第2部分介绍JavaScript的发展和技术背景;第3部分深入探索JavaScript,介绍了语法、值、运算符、布尔类型、数字、字符串、语句、异常捕获、函数、变量、对象与继承、数组、正则表达式、Date、Math、JSON、标准全局变量、编码和JavaScript、ECMAScript 5的新特性等内容;第4部分介绍技巧、工具和类库,帮助读者更好地运用JavaScript进行编程。

    本书包括以下内容:

    JavaScript快速上手:更习惯面向对象的编程?这个部分会帮你更快更好地开始学习JavaScript。

    背景:了解JavaScript的历史,以及它与其他语言之间的关系。

    深入JavaScript:详细学习ECMAScript 5,从语法,变量,函数,面向对象编程,再到正则表达式和JSON,以及大量的示例。

    技巧、工具和类库:对现有风格指引、实践、高阶技术、模块系统、包管理、构建工具进行调研和学习。

    深入理解javascript章节目录

    第1部分 JavaScript快速上手

    第1章 基础JavaScript 3

    1.1 背景 3

    1.1.1 JavaScript与ECMAScript 3

    1.1.2 JavaScript的影响和本质 3

    1.2 语法 4

    1.2.1 语法概述 4

    1.2.2 语句和表达式 5

    1.2.3 分号 5

    1.2.4 注释 6

    1.3 变量和赋值 6

    1.3.1 赋值 6

    1.3.2 复合赋值运算符 6

    1.3.3 标识符与变量名 6

    1.4 值 7

    1.4.1 原始值和对象 8

    1.4.2 原始值 9

    1.4.3 对象 9

    1.4.4 undefined和null 10

    1.4.5 使用typeof和instanceof对值分类 11

    1.5 布尔值 13

    1.5.1 真值与假值 13

    1.5.2 二元逻辑运算符 14

    1.5.3 等式运算符 14

    1.6 数字 14

    1.7 运算符 15

    1.8 字符串 16

    1.8.1 字符串运算符 16

    1.8.2 字符串方法 17

    1.9 语句 17

    1.9.1 条件语句 17

    1.9.2 循环语句 18

    1.10 函数 19

    1.10.1 函数声明的提升特性 19

    1.10.2 特殊的变量arguments 20

    1.10.3 参数太多或太少 20

    1.10.4 可选参数 20

    1.10.5 强制参数长度 21

    1.10.6 将arguments转换为数组 21

    1.11 异常捕获 21

    1.12 严格模式 22

    1.13 变量作用域和闭包 22

    1.13.1 变量是函数作用域的 23

    1.13.2 变量的提升特性 23

    1.13.3 闭包 23

    1.13.4 IIFE模式:引入一个新的作用域 24

    1.14 对象和构造函数 25

    1.14.1 单一对象 25

    1.14.2 任意属性名 26

    1.14.3 提取方法 26

    1.14.4 方法中的函数 27

    1.14.5 构造函数:对象工厂 28

    1.15 数组 29

    1.15.1 数组字面量 29

    1.15.2 数组方法 30

    1.15.3 遍历数组 30

    1.16 正则表达式 31

    1.16.1 test()方法:匹配吗 31

    1.16.2 exec()方法:匹配以及捕获分组 31

    1.16.3 replace()方法:搜索和替换 31

    1.17 Math 32

    1.18 标准库的其他功能 32

    第2部分 背景

    第2章 为什么选择JavaScript 35

    2.1 JavaScript可以自由使用吗 35

    2.2 JavaScript优雅吗 36

    2.3 JavaScript有用吗 36

    2.3.1 图形用户界面 36

    2.3.2 其他技术补充完善JavaScript 36

    2.4 JavaScript有什么好用的工具吗 37

    2.5 JavaScript是否足够快 37

    2.6 JavaScript是广泛使用的吗 38

    2.7 JavaScript有前途吗 38

    2.8 结论 38

    第3章 JavaScript的性质 39

    3.1 古怪和非官方特性 40

    3.2 优雅部分 40

    3.3 影响 41

    第4章 JavaScript是如何创造出来的 42

    第5章 标准化:ECMAScript 44

    第6章 JavaScript的历史里程碑 46

    第3部分 深入JavaScript

    第7章 JavaScript的语法 53

    7.1 语法概览 53

    7.2 注释 54

    7.3 表达式与语句 54

    7.3.1 表达式 55

    7.3.2 语句 55

    7.4 控制流语句和块 57

    7.5 使用分号的规则 57

    7.5.1 以块结束的语句后面没有分号 58

    7.5.2 空语句 58

    7.5.3 自动分号插入 59

    7.6 合法标识符 60

    7.7 数字字面量的方法调用 62

    7.8 严格模式 62

    7.8.1 启用严格模式 62

    7.8.2 严格模式:建议与注意事项 63

    7.8.3 严格模式中,变量必须被声明 63

    7.8.4 严格模式下的函数 63

    7.8.5 严格模式中,设置或者删除不可改变的属性会抛出异常 65

    7.8.6 严格模式中的不合格标识符不能删除 65

    7.8.7 严格模式中,eval更加简洁 66

    7.8.8 严格模式中禁用的特性 66

    第8章 值 67

    8.1 JavaScript中的类型体系 67

    8.1.1 JavaScript类型 67

    8.1.2 静态与动态 68

    8.1.3 静态类型与动态类型 68

    8.1.4 静态类型检查和动态类型检查 68

    8.1.5 强制转换 69

    8.2 原始值和对象 69

    8.2.1 原始值 70

    8.2.2 对象 70

    8.3 undefined和null 72

    8.3.1 undefined和null的出现场景 72

    8.3.2 检测undefined和null 73

    8.3.3 undefined和null的历史 74

    8.3.4 修改undefined 75

    8.4 原始值的包装对象 76

    8.4.1 包装对象不同于原始值 76

    8.4.2 原始值的包装与去包装 76

    8.4.3 原始值从包装器借调方法 77

    8.5 强制类型转换 78

    8.5.1 强制类型转换会隐藏bug 78

    8.5.2 转换成布尔值、数字、字符串和对象的函数 78

    8.5.3 算法:ToPrimitive()—将值转换为原始值 80

    第9章 运算符 82

    9.1 运算符和对象 82

    9.2 赋值运算符 82

    9.3 等号运算符:=== 和 == 84

    9.3.1 严格相等(===,!==) 84

    9.3.2 普通(宽松)相等(==,!=) 85

    9.3.3 没有针对==的有效用例 87

    9.4 排序运算符 88

    9.5 加号运算符(+) 89

    9.6 布尔运算符和数字运算符 90

    9.7 特殊运算符 90

    9.7.1 条件运算符(?:) 90

    9.7.2 逗号运算符 91

    9.7.3 void运算符 91

    9.8 通过typeof和instanceof判断值类型 93

    9.8.1 typeof:判断原始值 93

    9.8.2 instanceof:检测对象是否是给定构造函数的实例 95

    9.9 对象运算符 96

    第10章 布尔类型 97

    10.1 转换成布尔值 97

    10.1.1 手动转换为布尔值 97

    10.1.2 真值和假值 98

    10.2 逻辑运算符 99

    10.2.1 二元逻辑运算符:与(&&)和或(||) 99

    10.2.2 逻辑与(&&) 100

    10.2.3 逻辑或(||) 100

    10.2.4 逻辑非(!) 101

    10.3 等号运算符、排序运算符 101

    10.4 Boolean函数 102

    第11章 数字 103

    11.1 数字字面量 103

    11.1.1 说明 103

    11.1.2 在字面量上调用方法 104

    11.2 转换成数字 104

    11.2.1 手动转换为数字 104

    11.2.2 parseFloat() 105

    11.3 特殊的数字值 106

    11.3.1 NaN 106

    11.3.2 Infinity 108

    11.3.3 两个0 109

    11.4 数字的内部表示 111

    11.5 处理舍入错误 112

    11.6 JavaScript中的整型 114

    11.6.1 整型的范围 114

    11.6.2 将整型表示为浮点数字 115

    11.6.3 安全的整型 116

    11.7 转换成整数 117

    11.7.1 通过Math.floor(),Math.ceil()和Math.round()得到整数 118

    11.7.2 通过定制函数ToInteger()得到整数 119

    11.7.3 通过位运算符得到32位整数 119

    11.7.4 通过parseInt()得到整数 121

    11.8 算术运算符 122

    11.9 位运算符 125

    11.9.1 背景知识 125

    11.9.2 位运算非操作符 126

    11.9.3 二进制位运算符 126

    11.9.4 位运算移位操作符 127

    11.10 Number函数 128

    11.11 Number构造器属性 128

    11.12 Number原型方法 129

    11.12.1 Number.prototype.toFixed(fractionDigits?) 129

    11.12.2 Number.prototype.toPrecision(precision?) 130

    11.12.3 Number.prototype.toString(radix?) 130

    11.12.4 Number.prototype.toExponential(fractionDigits?) 131

    11.13 用于数字的函数 132

    11.14 本章参考资料 132

    第12章 字符串 133

    12.1 字符串字面量 133

    12.2 字符串字面量中的转义字符 134

    12.3 字符访问 135

    12.4 转换为字符串 135

    12.5 字符串比较 137

    12.6 字符串拼接 137

    12.6.1 合并:加号(+)运算符 137

    12.6.2 合并:拼接字符串数组 138

    12.7 字符串函数 138

    12.8 字符串构造器方法 138

    12.9 字符串length属性 139

    12.10 字符串原型方法 139

    12.10.1 提取子字符串 139

    12.10.2 字符串的变换 141

    12.10.3 字符串的检索和比较 142

    12.10.4 支持正则表达式的方法 143

    第13章 语句 145

    13.1 声明和变量赋值 145

    13.2 循环语句和条件语句的主体 145

    13.3 循环 146

    13.3.1 循环的机制 146

    13.3.2 while 147

    13.3.3 do-while 147

    13.3.4 for 147

    13.3.5 for-in 148

    13.3.6 for each-in 150

    13.4 条件语句 150

    13.4.1 if-then-else 150

    13.4.2 switch 151

    13.5 with语句 153

    13.5.1 语法与语义 153

    13.5.2 with语句已被废弃 154

    13.5.3 废弃with的原因 154

    13.6 debugger语句 156

    第14章 异常捕获 157

    14.1 什么是异常捕获 157

    14.2 JavaScript中的异常捕获 158

    14.2.1 throw 159

    14.2.2 try-catch-finally 159

    14.2.3 例子 160

    14.3 Error构造器 161

    14.4 栈跟踪 162

    14.5 实现一个自己的异常构造器 163

    第15章 函数 164

    15.1 JavaScript中函数的3种形式 164

    15.2 术语:“形参”和“实参” 165

    15.3 定义函数 165

    15.3.1 函数表达式 166

    15.3.2 函数声明 167

    15.3.3 Function构造器 167

    15.4 函数提升 167

    15.5 函数的名称 168

    15.6 哪个更好,函数声明还是函数表达式 168

    15.7 控制函数调用:call(),apply()和bind() 169

    15.7.1 func.apply(thisValue, argArray) 169

    15.7.2 func.bind(thisValue, arg1, ..., argN) 170

    15.8 参数缺失或者超出时的处理 170

    15.8.1 通过索引访问所有参数:神奇的arguments变量 170

    15.8.2 强制性参数,限制参数数量的最小值 172

    15.8.3 可选参数 173

    15.8.4 模拟参数的引用传递 173

    15.8.5 陷阱:非预期的可选参数 174

    15.9 具名参数 175

    15.9.1 具名参数可作为描述信息 175

    15.9.2 可选的具名参数 176

    15.9.3 在JavaScript中模拟具名参数 176

    第16章 变量:作用域、环境和闭包 177

    16.1 定义变量 177

    16.2 背景知识:静态性和动态性 177

    16.3 背景知识:变量的作用域 178

    16.4 变量以函数为作用域 179

    16.5 变量声明的提前 180

    16.6 通过IIFE引入新的作用域 181

    16.6.1 IIFE变体:前缀运算符 182

    16.6.2 IIFE变体:预内置表达式上下文 183

    16.6.3 IIFE变体:传参的IIFE 183

    16.6.4 IIFE的应用 183

    16.7 全局变量 184

    16.7.1 最佳实践:避免创建全局变量 184

    16.7.2 模块系统可以减少全局变量的引入 185

    16.8 全局对象 185

    16.8.1 跨平台兼容 186

    16.8.2 window的使用场景 186

    16.9 环境:变量的管理 188

    16.10 闭包:使得函数可以维持其创建时所在的作用域 191

    16.10.1 通过环境来控制闭包 191

    16.10.2 陷阱:不经意间的环境共用 193

    第17章 对象与继承 195

    17.1 第1层:单一对象 195

    17.1.1 属性的种类 195

    17.1.2 对象字面量 196

    17.1.3 点运算符(.):通过固定键值访问属性 197

    17.1.4 特殊的属性键 199

    17.1.5 中括号操作符([]):通过计算出的键访问属性 199

    17.2 把任意值转化为对象 201

    17.3 this作为函数和方法的隐式参数 202

    17.3.1 在调用函数时设置 this:call(),apply()和bind() 202

    17.3.2 “用于构造函数的 apply()”详细阐述了如何配合构造函数

    使用apply() 203

    17.3.3 用于构造函数的apply() 204

    17.3.4 缺陷:提取方法时丢失 this 206

    17.3.5 缺陷:方法中的函数会掩盖 this 207

    17.4 第2层:对象间的原型关系 209

    17.4.1 继承 209

    17.4.2 覆写 210

    17.4.3 通过原型在对象间共享数据 210

    17.4.4 获取和设置原型 211

    17.4.5 特殊属性 __proto__ 213

    17.4.6 设置和删除仅影响自有属性 214

    17.5 遍历和检测属性 215

    17.5.1 列出自有的属性键 215

    17.5.2 列出所有的属性键 216

    17.5.3 检测属性是否存在 216

    17.5.4 示例 217

    17.6 最佳实践:遍历自有属性 218

    17.7 访问器(getter 和 setter) 218

    17.7.1 通过对象字面量定义访问器 219

    17.7.2 通过属性描述符定义访问器 219

    17.7.3 访问器和继承 219

    17.8 属性特性和属性描述符 220

    17.8.1 属性特性 220

    17.8.2 属性描述符 221

    17.8.3 通过描述符获取和定义属性 221

    17.8.4 复制对象 223

    17.8.5 属性:定义与赋值 224

    17.8.6 继承的只读属性不能被赋值 225

    17.8.7 枚举性:最佳实践 225

    17.9 保护对象 226

    17.9.1 防止扩展 226

    17.9.2 封闭 227

    17.9.3 冻结 228

    17.9.4 缺陷:保护是浅层的 229

    17.10 第3层:构造函数—实例工厂 229

    17.10.1 JavaScript 中 new 操作符的实现 231

    17.10.2 术语:两个原型 231

    17.10.3 实例的 constructor 属性 232

    17.10.4 instanceof 运算符 234

    17.10.5 实现构造函数的小技巧 237

    17.11 原型属性中的数据 238

    17.11.1 对于实例属性,避免使用带初始值的原型属性 238

    17.11.2 避免非多态的原型属性 240

    17.11.3 多态的原型属性 241

    17.12 保持数据私有性 241

    17.12.1 构造函数环境中的私有数据(Crockford私有模式) 241

    17.12.2 使用标记的键的属性保存私有数据 245

    17.12.3 使用具体化键的属性保存私有数据 246

    17.12.4 通过IIFE保持全局数据私有 247

    17.13 第4层:构造函数之间的继承 248

    17.13.1 继承实例属性 249

    17.13.2 继承原型属性 249

    17.13.3 确保instanceof正常工作 250

    17.13.4 覆写方法 251

    17.13.5 父调用 251

    17.13.6 避免硬编码父构造函数的名字 252

    17.13.7 示例:构造函数继承 253

    17.13.8 示例:内建构造函数的继承层次结构 254

    17.13.9 反模式:原型是父构造函数的实例 254

    17.14 所有对象的方法 254

    17.14.1 转换为原始值 254

    17.14.2 Object.prototype.toLocaleString() 255

    17.14.3 原型式继承和属性 255

    17.15 泛型方法:借用原型方法 256

    17.15.1 通过字面量访问Object.prototype和Array.prototype 257

    17.15.2 调用泛型方法的例子 258

    17.15.3 类似数组的对象和泛型方法 259

    17.15.4 所有泛型方法列表 261

    17.16 缺陷:Object作为Map使用 263

    17.16.1 缺陷1:继承影响读取属性 263

    17.16.2 缺陷2:覆写会影响调用方法 265

    17.16.3 缺陷3:特殊属性__proto__ 265

    17.16.4 字典模式:没有原型的对象更适合用作映射 266

    17.16.5 最佳实践 267

    17.17 备忘录:对象的使用 267

    第18章 数组 269

    18.1 概述 269

    18.1.1 数组是映射,不是元组 270

    18.1.2 数组也可以具有属性 270

    18.2 创建数组 270

    18.2.1 数组构造函数 271

    18.2.2 多维数组 271

    18.3 数组索引 272

    18.3.1 操作符in与索引 273

    18.3.2 删除数组元素 273

    18.3.3 数组索引的细节 273

    18.4 长度 275

    18.4.1 手动增加数组的长度 275

    18.4.2 减少数组的长度 276

    18.4.3 最大长度 277

    18.5 数组中的“空缺” 277

    18.5.1 创建空缺 278

    18.5.2 稀疏数组和密集数组 278

    18.5.3 哪些操作会忽略空缺,而哪些不会 279

    18.5.4 移除数组中的空缺 280

    18.6 数组构造函数 281

    18.7 数组原型方法 281

    18.8 添加和删除元素(破坏性地) 281

    18.9 排序和颠倒元素顺序(破坏性地) 283

    18.9.1 比较数字 284

    18.9.2 比较字符串 284

    18.9.3 比较对象 284

    18.10 合并、切分和连接(非破坏性地) 285

    18.11 值的查找(非破坏性地) 286

    18.12 迭代(非破坏性地) 287

    18.12.1 检测方法 287

    18.12.2 转化方法 289

    18.12.3 归约函数 289

    18.13 缺陷:类数组对象 291

    18.14 最佳实践:遍历数组 291

    第19章 正则表达式 293

    19.1 正则表达式语法 293

    19.1.1 原子:常规 293

    19.1.2 原子:字符类 295

    19.1.3 原子:分组 296

    19.1.4 量词 296

    19.1.5 断言 297

    19.1.6 析取(或) 298

    19.2 Unicode 和正则表达式 298

    19.3 创建正则表达式 298

    19.3.1 字面量与构造函数 299

    19.3.2 标识 299

    19.3.3 正则表达式的实例属性 299

    19.3.4 几个创建正则表达式的例子 300

    19.4 RegExp.prototype.test:是否存在匹配 300

    19.5 String.prototype.search:匹配位置的索引 301

    19.6 RegExp.prototype.exec:捕获分组 301

    19.6.1 首次匹配(不设置标识/g) 302

    19.6.2 全部匹配(设置标识 /g) 302

    19.7 String.prototype.match:捕获分组或返回所有匹配的子字符串 303

    19.8 String.prototype.replace:查找和替换 303

    19.8.1 Replacement 为字符串的情况 304

    19.8.2 当Replacement为函数时 305

    19.9 标识 /g 的一些问题 305

    19.10 提示与技巧 308

    19.10.1 引用文本 308

    19.10.2 陷阱:缺少断言(例如^、$)的正则表达式可以在任意位置

    匹配 308

    19.10.3 匹配一切或什么都不匹配 308

    19.10.4 手动实现逆向查找 309

    19.11 正则表达式备忘单 310

    第20章 Date 313

    20.1 Date构造函数 313

    20.2 Date构造函数方法 315

    20.3 Date原型方法 315

    20.3.1 时间单位的getter和setter方法 316

    20.3.2 各种各样的getter和setter方法 317

    20.3.3 将日期转换成字符串 317

    20.4 日期和时间格式 319

    20.4.1 日期格式(无时间) 319

    20.4.2 时间格式(无日期) 320

    20.4.3 日期时间格式 321

    20.5 时间值:从1970-01-01开始的毫秒数 321

    第21章 Math 323

    21.1 Math属性 323

    21.2 数值函数 324

    21.3 三角函数 325

    21.4 其他函数 327

    第22章 JSON 329

    22.1 背景 329

    22.1.1 数据格式 329

    22.1.2 历史 330

    22.1.3 语法 330

    22.2 JSON.stringify(value, replacer?, space?) 334

    22.2.1 被JSON.stringify()忽略的数据 335

    22.2.2 toJSON()方法 336

    22.3 JSON.parse(text, reviver?) 337

    22.4 通过节点访问函数转换数据 338

    22.4.1 JSON.stringify() 339

    22.4.2 JSON.parse() 339

    第23章 标准全局变量 341

    23.1 构造器 341

    23.2 Error构造器 342

    23.3 非构造器函数 342

    23.3.1 文字的编码和解码 342

    23.3.2 数值归类与数值转换 343

    23.4 通过eval()和new Function()来动态执行JavaScript代码 344

    23.4.1 使用eval()执行代码 344

    23.4.2 通过new Function()执行代码 346

    23.4.3 eval()与new Function()比较 347

    23.4.4 最佳实践 347

    23.4.5 结论 347

    23.5 Console API 348

    23.5.1 Console API在各引擎的标准程度如何 348

    23.5.2 简单的日志记录 349

    23.5.3 检查和计数 350

    23.5.4 格式化的日志 350

    23.5.5 性能和时间 352

    23.6 名称空间和特殊值 353

    第24章 编码和JavaScript 354

    24.1 Unicode历史 354

    24.2 Unicode中的重要概念 354

    24.3 码位 356

    24.4 Unicode编码 357

    24.5 JavaScript源码和Unicode 359

    24.5.1 内部源码转化 359

    24.5.2 源码外部转化 359

    24.6 JavaScript字符串和Unicode 361

    24.6.1 转义序列 361

    24.6.2 通过转义引用星际平面的字符 361

    24.6.3 字符长度计算 362

    24.6.4 Unicode正常化 362

    24.7 JavaScript正则表达式和Unicode 363

    24.7.1 匹配任意的码元以及任意的码位 364

    24.7.2 库 364

    24.7.3 推荐阅读的章节资源 364

    第25章 ECMAScript 5的新特性 366

    25.1 新特性 366

    25.2 语法的改变 367

    25.3 标准库的新功能 367

    25.3.1 元编程 367

    25.3.2 新方法 368

    25.3.3 JSON 369

    25.4 兼容旧浏览器的小贴士 370

    第4部分 技巧、工具和类库

    第26章 元编程风格指南 373

    26.1 现有风格指南 373

    26.2 通用技巧 374

    26.2.1 代码应该具有一致性 374

    26.2.2 代码应该易于理解 374

    26.3 普遍认可的最佳实践 375

    26.3.1 括号风格 376

    26.3.2 推荐字面量而不是构造函数 377

    26.3.3 不要自作聪明 378

    26.3.4 可接受的技巧 379

    26.4 具有争议的规则 380

    26.4.1 语法 380

    26.4.2 变量 381

    26.4.3 面向对象 382

    26.4.4 其他 383

    26.5 结论 384

    第27章 调试的语言机制 385

    第28章 子类化内置构造函数 386

    28.1 术语 386

    28.2 障碍1:具有内部属性的实例 386

    28.2.1 障碍1的解决方法 388

    28.2.2 注意 389

    28.3 障碍2:内置的构造函数不能作为方法调用 389

    28.4 另一种解决方案:委托 390

    第29章 JSDoc:生成API文档 392

    29.1 JSDoc基础 393

    29.1.1 语法 393

    29.1.2 命名类型 394

    29.2 基础的标签 395

    29.3 文档记录函数和方法 396

    29.4 行内类型信息(“行内文档注释”) 397

    29.5 文档记录变量、参数和实例属性 397

    29.6 文档记录类 398

    29.6.1 通过构造函数定义类 399

    29.6.2 通过对象字面量定义类 399

    29.6.3 通过带有@constructs方法的对象字面量定义类 400

    29.6.4 子类 400

    29.7 其他有用的标签 401

    第30章 类库 402

    30.1 shim和polyfill 402

    30.2 四个语言类库 403

    30.3 ECMAScript的国际化API 403

    30.3.1 ECMAScript的国际化API,第1版 403

    30.3.2 它是怎么样的标准呢 404

    30.3.3 我们可以用它做什么 404

    30.3.4 延伸阅读 404

    30.4 JavaScript资源目录 405

    第31章 模块系统和包管理器 407

    31.1 模块系统 407

    31.2 包管理器 408

    31.3 简单粗暴的模块实现 408

    第32章 其他工具 410

    第33章 接下来该做什么 412

    使用说明

    1、下载并解压,得出pdf文件

    2、如果打不开本文件,请务必下载pdf阅读器

    3、安装后,在打开解压得出的pdf文件

    4、双击进行阅读

    语言简体中文

    精品推荐

    同类热门

    得间免费小说电脑版得间免费小说电脑版 南方Plus电脑版南方Plus电脑版 网易新闻电脑版网易新闻电脑版 京东读书电脑版京东读书电脑版 数据挖掘导论数据挖掘导论 吉利博瑞用户手册吉利博瑞用户手册 本草纲目本草纲目 docker入门实战docker入门实战

    类似软件

    热门标签

    视频分割软件大全 电脑定时关机软件大全 电脑cpu超频软件 三维动画制作软件大全 电脑音乐伴奏软件推荐 文献管理软件大全 常用的工程制图软件 电脑证券交易软件大全 手机锁屏密码解锁软件 最好用的flash反编译工具 服务器安全软件 win10激活工具大全

    网友评论0人参与,0条评论

    最新排行

    手游排行软件排行热门应用