• 深入理解ES6
21年品牌 40万+商家 超1.5亿件商品

深入理解ES6

本店所售图书,保证正版新书,有个别图片和实书封面不一样,以实书封面为准,最快当天,一般隔天发货。支持7天无理由退换货.开票联系客服

47.9 4.8折 99 全新

库存3件

北京西城
认证卖家担保交易快速发货售后保障

作者刘振涛 校

出版社电子工业出版社

出版时间2017-07

版次1

装帧平装

货号3880372

上书时间2023-12-15

剡溪书局

四年老店
已实名 已认证 进店 收藏店铺

   商品详情   

品相描述:全新
商品描述
作者简介
刘振涛,前端工程师;infoQ网站译者,负责重点连载专栏《深入浅出ES6》;长期关注Web开发领域新生,尤其是Ecma*6;爱好摄影、网球,重度信息癖(Infomania)患者。

目录
第1章  块级作用域绑定
  var声明及变量提升(Hoisting)机制
  块级声明
    let声明
    禁止重声明
    const声明
    临时死区(Temporal Dead Zone)
  循环中的块作用域绑定
    循环中的函数
    循环中的let声明
    循环中的const声明
  全局块作用域绑定
  块级绑定佳实践的进化
  小结
第2章  字符串和正则表达式
  更好的Unicode支持
    UTF-16码位
    codePointAt()方法
    String.fromCodePoint()方法
    rmalize()方法
    正则表达式u修饰符
  其他字符串变更
    字符串中的子串识别
    repeat()方法
  其他正则表达式语法变更
    正则表达式y修饰符
    正则表达式的复制
    flags属性
  模板字面量
    基础语法
    多行字符串
    字符串占位符
    标签模板
  小结
第3章  函数
  函数形参的默认值
    在ECMAScript 5中模拟默认参数
    ECMAScript 6中的默认参数值
    默认参数值对arguments对象的影响
    默认参数表达式
    默认参数的临时死区
  处理无命名参数
    ECMAScript 5中的无命名参数
    不定参数
  增强的Function构造函数
  展开运算符
  name属性
    如何选择合适的名称
    name属性的特殊情况
  明确函数的多重用途
    在ECMAScript 5中判断函数被调用的方法
    元属性(Metaproperty)new.target
  块级函数
    块级函数的使用场景
    非严格模式下的块级函数
  箭头函数
    箭头函数语法
    创建立即执行函数表达式
    箭头函数没有this绑定
    箭头函数和数组
    箭头函数没有arguments绑定
    箭头函数的辨识方法
  尾调用优化
    ECMAScript 6中的尾调用优化
    如何利用尾调用优化
  小结
第4章  扩展对象的功能性
  对象类别
  对象字面量语法扩展
    属性初始值的简写
    对象方法的简写语法
    可计算属性名(Computed Property Name)
  新增方法
    Object.is()方法
    Object.assign()方法
  重复的对象字面量属性
  自有属性枚举顺序
  增强对象原型
    改变对象的原型
    简化原型访问的Super引用
  正式的方法定义
  小结
第5章  解构:使数据访问更便捷
  为何使用解构功能
  对象解构
    解构赋值
    默认值
    为非同名局部变量赋值
    嵌套对象解构
  数组解构
    解构赋值
    默认值
    嵌套数组解构
    不定元素
  混合解构
  解构参数
    必须传值的解构参数
    解构参数的默认值
  小结
第6章  Symbol和Symbol属性
  创建Symbol
  Symbol的使用方法
  Symbol共享体系
  Symbol与类型强制转换
  Symbol属性检索
  通过well-kwn Symbol暴露内部操作
    Symbol.hasInstance方法
    Symbol.isConcatSpreadable属性
    Symbol.match、Symbol.replace、Symbol.search和Symbol.split属性
    Symbol.toPrimitive方法
    Symbol.toStringTag属性
    Symbol.unscopables属性
  小结
第7章  Set集合与Map集合
  ECMAScript 5中的Set集合与Map集合
  该解决方案的一些问题
  ECMAScript 6中的Set集合
    创建Set集合并添加元素
    移除元素
    Set集合的forEach()方法
    将Set集合转换为数组
    Weak Set集合
  ECMAScript 6中的Map集合
    Map集合支持的方法
    Map集合的初始化方法
    Map集合的forEach()方法
    Weak Map集合
  小结
第8章  迭代器(Iterator)和生成器(Generator)
  循环语句的问题
  什么是迭代器
  什么是生成器
    生成器函数表达式
    生成器对象的方法
  可迭代对象和for-of循环
    访问默认迭代器
    创建可迭代对象
  内建迭代器
    集合对象迭代器
    字符串迭代器
    NodeList迭代器
  展开运算符与非数组可迭代对象
  高级迭代器功能
    给迭代器传递参数
    在迭代器中抛出错误
    生成器返回语句
    委托生成器
  异步任务执行
    简单任务执行器
    向任务执行器传递数据
    异步任务执行器
  小结
第9章  中的类
  ECMAScript 5中的近类结构
  类的声明
    基本的类声明语法
    为何使用类语法
  类表达式
    基本的类表达式语法
    命名类表达式
  作为一等公民的类
  访问器属性
  可计算成员名称
  生成器方法
  静态成员
  继承与派生类
    类方法遮蔽
    静态成员继承
    派生自表达式的类
    内建对象的继承
    Symbol.species属性
  在类的构造函数中使用new.target
  小结
第10章  改进的数组功能
  创建数组
    Array.of()方法
    Array.from()方法
  为所有数组添加的新方法
    find()方法和findIndex()方法
    fill()方法
    copyWithin()方法
  定型数组
    数值数据类型
    数组缓冲区
    通过视图操作数组缓冲区
  定型数组与普通数组的相似之处
    通用方法
    相同的迭代器
    of()方法和from()方法
  定型数组与普通数组的差别
    行为差异
    缺失的方法
    附加方法
  小结
第11章  Promise与异步编程
  异步编程的背景知识
    事件模型
    回调模式
  Promise的基础知识
    Promise的生命周期
    创建未完成的Promise
    创建已处理的Promise
    执行器错误
  全局的Promise拒绝处理
  Node.js环境的拒绝处理
  环境的拒绝处理
  串联Promise
    捕获错误
    Promise链的返回值
    在Promise链中返回Promise
  响应多个Promise
    Promise.all()方法
    Promise.race()方法
  自Promise继承
  基于Promise的异步任务执行
  小结
第12章  代理(Proxy)和反射(Reflection)API
  数组问题
  代理和反射
  创建一个简单的代理
  使用set陷阱验证属性
  用get陷阱验证对象结构(Object Shape)
  使用has陷阱隐藏已有属性
  用deleteProperty陷阱防止删除属性
  原型代理陷阱
    原型代理陷阱的运行机制
    为什么有两组方法
  对象可扩展性陷阱
    两个基础示例
    重复的可扩展性方法
  属性描述符陷阱
    给Object.defineProperty()添加限制
    描述符对象限制
    重复的描述符方法
  ownKeys陷阱
  函数代理中的apply和construct陷阱
    验证函数参数
    不用new调用构造函数
    覆写抽象基类构造函数
    可调用的类构造函数
  可撤销代理
  解决数组问题
    检测数组索引
    添加新元素时增加length的值
    减少length的值来删除元素
    实现MyArray类
  将代理用作原型
    在原型上使用get陷阱
    在原型上使用set陷阱
    在原型上使用has陷阱
    将代理用作类的原型
  小结
第13章  用模块封装代码
  什么是模块
  导出的基本语法
  导入的基本语法
    导入单个绑定
    导入多个绑定
    导入整个模块
    导入绑定的一个微妙怪异之处
  导出和导入时重命名
  模块的默认值
    导出默认值
    导入默认值
  重新导出一个绑定
  无绑定导入
  加载模块
    在Web中使用模块
    模块说明符解析
  小结
附录A ECMAScript 6中较小的改动
附录B 了解ECMAScript 7(2016)
索引

内容摘要
。。。

精彩内容
。。。

图书标准信息
  • 作者 刘振涛 校
  • 出版社 电子工业出版社
  • 出版时间 2017-07
  • 版次 1
  • ISBN 9787121317989
  • 定价 99.00元
  • 装帧 平装
  • 开本 16开
  • 纸张 胶版纸
  • 页数 396页
  • 字数 474千字
【内容简介】

    ES6是ECMAScript标准十余年来变动大的一个版本,其中添加了许多新的语法特性,既有大家耳熟能详的Promise,也有闻所未闻的Proxy代理和Reflection反射;既有可以通过转译器(Transpiler)等方式在旧版本浏览器中实现兼容的let、const、不定参数、展开运算符等功能,亦有无论如何都无法实现向前兼容的尾调用优化。深入理解ES6的特性对于所有JavaScript开发者而言至关重要,在可预见的未来,ES6中引入的语言特性会成为JavaScript应用程序的主流特性,这也是《深入理解ES6》的初衷。希望你通过阅读《深入理解ES6》可以了解ES6的新特性,并在需要时能够随时使用。

【作者简介】

   Nicholas C. Zakas自2000年以来一直致力于Web应用程序的开发,重点关注前端开发,并以写作和讲述前沿佳实践而闻名。他曾于雅虎主页任职5年有余,他也是多本书的作者,其中包括The Principles of Object-Oriented JavaScript(No Starch Press出版社)和Professional JavaScript for Web Developers(Wrox出版社)。

 

 

 

   关于技术评审

 

   Juriy Zaytsev(在网上以kangax著称)是纽约的一位前端网站开发人员。自2007年以来,他一直在探索JavaScript的怪异特性并撰写相关文章。Juriy为多个开源项目做出过贡献,其中包括Prototype.js和其他的热门项目,如他自己的Fabric.js。他是按需定制打印服务printio.ru的共同创始人,目前任职于Facebook。

【目录】

第1章 块级作用域绑定 1

 

var声明及变量提升(Hoisting)机制 1

 

块级声明 3

 

-- let声明 3

 

-- 禁止重声明 4

 

-- const声明 4

 

-- 临时死区(Temporal Dead Zone) 6

 

循环中的块作用域绑定 7

 

-- 循环中的函数 8

 

-- 循环中的let声明 9

 

-- 循环中的const声明 10

 

全局块作用域绑定 12

 

块级绑定最佳实践的进化 13

 

小结 13

 

第2章 字符串和正则表达式 14

 

更好的Unicode支持 14

 

-- UTF-16码位 15

 

-- codePointAt()方法 16

 

-- String.fromCodePoint()方法 17

 

-- normalize()方法 17

 

-- 正则表达式u修饰符 19

 

其他字符串变更 21

 

-- 字符串中的子串识别 21

 

-- repeat()方法 22

 

其他正则表达式语法变更 23

 

-- 正则表达式y修饰符 23

 

-- 正则表达式的复制 26

 

-- flags属性 27

 

模板字面量 28

 

-- 基础语法 28

 

-- 多行字符串 29

 

-- 字符串占位符 31

 

-- 标签模板 32

 

小结 36

 

第3章 函数 37

 

函数形参的默认值 37

 

-- 在ECMAScript 5中模拟默认参数 38

 

-- ECMAScript 6中的默认参数值 38

 

-- 默认参数值对arguments对象的影响 40

 

-- 默认参数表达式 42

 

-- 默认参数的临时死区 44

 

处理无命名参数 46

 

-- ECMAScript 5中的无命名参数 46

 

-- 不定参数 47

 

增强的Function构造函数 49

 

展开运算符 50

 

name属性 52

 

-- 如何选择合适的名称 52

 

-- name属性的特殊情况 52

 

明确函数的多重用途 54

 

-- 在ECMAScript 5中判断函数被调用的方法 54

 

-- 元属性(Metaproperty)new.target 55

 

块级函数 57

 

-- 块级函数的使用场景 58

 

-- 非严格模式下的块级函数 58

 

箭头函数 59

 

-- 箭头函数语法 60

 

-- 创建立即执行函数表达式 62

 

-- 箭头函数没有this绑定 63

 

-- 箭头函数和数组 65

 

-- 箭头函数没有arguments绑定 66

 

-- 箭头函数的辨识方法 66

 

尾调用优化 67

 

-- ECMAScript 6中的尾调用优化 68

 

-- 如何利用尾调用优化 69

 

小结 71

 

第4章 扩展对象的功能性 72

 

对象类别 72

 

对象字面量语法扩展 73

 

-- 属性初始值的简写 73

 

-- 对象方法的简写语法 74

 

-- 可计算属性名(Computed Property Name) 75

 

新增方法 76

 

-- Object.is()方法 76

 

-- Object.assign()方法 77

 

重复的对象字面量属性 80

 

自有属性枚举顺序 81

 

增强对象原型 82

 

-- 改变对象的原型 82

 

-- 简化原型访问的Super引用 83

 

正式的方法定义 86

 

小结 88

 

第5章 解构:使数据访问更便捷 89

 

为何使用解构功能 89

 

对象解构 90

 

-- 解构赋值 91

 

-- 默认值 92

 

-- 为非同名局部变量赋值 93

 

-- 嵌套对象解构 94

 

数组解构 96

 

-- 解构赋值 97

 

-- 默认值 99

 

-- 嵌套数组解构 99

 

-- 不定元素 99

 

混合解构 101

 

解构参数 102

 

-- 必须传值的解构参数 103

 

-- 解构参数的默认值 104

 

小结 106

 

第6章 Symbol和Symbol属性 107

 

创建Symbol 107

 

Symbol的使用方法 109

 

Symbol共享体系 110

 

Symbol与类型强制转换 112

 

Symbol属性检索 112

 

通过well-known Symbol暴露内部操作 113

 

-- Symbol.hasInstance方法 114

 

-- Symbol.isConcatSpreadable属性 116

 

-- Symbol.match、Symbol.replace、Symbol.search和Symbol.split属性 118

 

-- Symbol.toPrimitive方法 120

 

-- Symbol.toStringTag属性 122

 

-- Symbol.unscopables属性 125

 

小结 127

 

第7章 Set集合与Map集合 128

 

ECMAScript 5中的Set集合与Map集合 129

 

该解决方案的一些问题 129

 

ECMAScript 6中的Set集合 131

 

-- 创建Set集合并添加元素 131

 

-- 移除元素 133

 

-- Set集合的forEach()方法 133

 

-- 将Set集合转换为数组 136

 

-- Weak Set集合 136

 

ECMAScript 6中的Map集合 139

 

-- Map集合支持的方法 140

 

-- Map集合的初始化方法 141

 

-- Map集合的forEach()方法 142

 

-- Weak Map集合 143

 

小结 147

 

第8章 迭代器(Iterator)和生成器(Generator) 149

 

循环语句的问题 149

 

什么是迭代器 150

 

什么是生成器 151

 

-- 生成器函数表达式 153

 

-- 生成器对象的方法 154

 

可迭代对象和for-of循环 155

 

-- 访问默认迭代器 156

 

-- 创建可迭代对象 157

 

内建迭代器 158

 

-- 集合对象迭代器 158

 

-- 字符串迭代器 163

 

-- NodeList迭代器 164

 

展开运算符与非数组可迭代对象 165

 

高级迭代器功能 166

 

-- 给迭代器传递参数 166

 

-- 在迭代器中抛出错误 168

 

-- 生成器返回语句 170

 

-- 委托生成器 171

 

异步任务执行 174

 

-- 简单任务执行器 174

 

-- 向任务执行器传递数据 176

 

-- 异步任务执行器 177

 

小结 180

 

第9章 JavaScript中的类 181

 

ECMAScript 5中的近类结构 181

 

类的声明 182

 

-- 基本的类声明语法 182

 

-- 为何使用类语法 184

 

类表达式 186

 

-- 基本的类表达式语法 186

 

-- 命名类表达式 187

 

作为一等公民的类 189

 

访问器属性 190

 

可计算成员名称 192

 

生成器方法 193

 

静态成员 195

 

继承与派生类 196

 

-- 类方法遮蔽 199

 

-- 静态成员继承 199

 

-- 派生自表达式的类 200

 

-- 内建对象的继承 203

 

-- Symbol.species属性 205

 

在类的构造函数中使用new.target 208

 

小结 210

 

第10章 改进的数组功能 211

 

创建数组 211

 

-- Array.of()方法 212

 

-- Array.from()方法 213

 

为所有数组添加的新方法 216

 

-- find()方法和findIndex()方法 217

 

-- fill()方法 217

 

-- copyWithin()方法 218

 

定型数组 219

 

-- 数值数据类型 220

 

-- 数组缓冲区 221

 

-- 通过视图操作数组缓冲区 221

 

定型数组与普通数组的相似之处 228

 

-- 通用方法 229

 

-- 相同的迭代器 230

 

-- of()方法和from()方法 230

 

定型数组与普通数组的差别 231

 

-- 行为差异 231

 

-- 缺失的方法 232

 

-- 附加方法 233

 

小结 234

 

第11章 Promise与异步编程 235

 

异步编程的背景知识 235

 

-- 事件模型 236

 

-- 回调模式 236

 

Promise的基础知识 239

 

-- Promise的生命周期 239

 

-- 创建未完成的Promise 242

 

-- 创建已处理的Promise 244

 

-- 执行器错误 247

 

全局的Promise拒绝处理 248

 

Node.js环境的拒绝处理 248

 

浏览器环境的拒绝处理 251

 

串联Promise 253

 

-- 捕获错误 254

 

-- Promise链的返回值 255

 

-- 在Promise链中返回Promise 256

 

响应多个Promise 259

 

-- Promise.all()方法 259

 

-- Promise.race()方法 260

 

自Promise继承 262

 

基于Promise的异步任务执行 263

 

小结 267

 

第12章 代理(Proxy)和反射(Reflection)API 269

 

数组问题 269

 

代理和反射 270

 

创建一个简单的代理 271

 

使用set陷阱验证属性 272

 

用get陷阱验证对象结构(Object Shape) 274

 

使用has陷阱隐藏已有属性 275

 

用deleteProperty陷阱防止删除属性 277

 

原型代理陷阱 279

 

-- 原型代理陷阱的运行机制 279

 

-- 为什么有两组方法 281

 

对象可扩展性陷阱 282

 

-- 两个基础示例 283

 

-- 重复的可扩展性方法 284

 

属性描述符陷阱 285

 

-- 给Object.defineProperty()添加限制 286

 

-- 描述符对象限制 287

 

-- 重复的描述符方法 288

 

ownKeys陷阱 290

 

函数代理中的apply和construct陷阱 291

 

-- 验证函数参数 292

 

-- 不用new调用构造函数 294

 

-- 覆写抽象基类构造函数 296

 

-- 可调用的类构造函数 297

 

可撤销代理 298

 

解决数组问题 299

 

-- 检测数组索引 300

 

-- 添加新元素时增加length的值 300

 

-- 减少length的值来删除元素 302

 

-- 实现MyArray类 304

 

将代理用作原型 307

 

-- 在原型上使用get陷阱 307

 

-- 在原型上使用set陷阱 308

 

-- 在原型上使用has陷阱 309

 

-- 将代理用作类的原型 310

 

小结 314

 

第13章 用模块封装代码 315

 

什么是模块 315

 

导出的基本语法 316

 

导入的基本语法 317

 

-- 导入单个绑定 318

 

-- 导入多个绑定 318

 

-- 导入整个模块 318

 

-- 导入绑定的一个微妙怪异之处 320

 

导出和导入时重命名 320

 

模块的默认值 321

 

-- 导出默认值 321

 

-- 导入默认值 322

 

重新导出一个绑定 323

 

无绑定导入 324

 

加载模块 325

 

-- 在Web浏览器中使用模块 325

 

-- 浏览器模块说明符解析 329

 

小结 330

 

附录A ECMAScript 6中较小的改动 331

 

附录B 了解ECMAScript 7(2016) 337

 

索引 343

点击展开 点击收起

—  没有更多了  —

以下为对购买帮助不大的评价

此功能需要访问孔网APP才能使用
暂时不用
打开孔网APP