JavaScript这门语言简单易用,很容易上手,但其语言机制复杂微妙,即使是经验丰富的JavaScript开发人员,如果没有认真学习的话也无法真正理解。本套书直面当前JavaScript开发人员不求甚解的大趋势,深入理解语言内部的机制,全面介绍了JavaScript中常被人误解和忽视的重要知识点。本书是其中卷,主要介绍了类型、语法、异步和性能。
你不知道的JavaScript(上中下三卷)
✍ Scribed by [美] Kyle Simpson
- Publisher
- 人民邮电出版社
- Year
- 2015
- Tongue
- Chinese
- Leaves
- 875
- Series
- 你不知道的JavaScript
- Category
- Library
No coin nor oath required. For personal study only.
✦ Synopsis
书签已装载,
书签制作方法请找 [email protected]
完全免费
JavaScript语言有很多复杂的概念,但却用简单的方式体现出来(比如回调函数),因此,JavaScript开发者无需理解语言内部的原理,就能编写出功能全面的程序;就像收音机一样,你无需理解里面的管子和线圈都是做什么用的,只要会操作收音机上的按键,就可以收听你喜欢的节目。然而,JavaScript的这些复杂精妙的概念才是语言的精髓,即使是经验丰富的JavaScript开发者,如果没有认真学习也无法真正理解语言本身的特性。正是因为绝大多数人不求甚解,一遇到出乎意料的行为就认为是语言本身有缺陷,进而把相关的特性加入黑名单,久而久之就排除了这门语言的多样性,人为地使它变得不完整、不安全。
“你不知道的JavaScript”系列就是要让不求甚解的JavaScript开发者迎难而上,深入语言内部,弄清楚JavaScript每一个零部件的用途。本书介绍了该系列的两个主题:“作用域和闭包”以及“this和对象原型”。掌握了这些知识之后,无论什么技术、框架和流行词语,你都能轻松理解。
✦ Table of Contents
你不知道的JavaScript(上卷)
你不知道的JavaScript(上卷)
数字版权声明
译者简介
扉页
版权页
O’Reilly Media, Inc.介绍
目录
前言
第一部分 作用域和闭包
序
第1 章 作用域是什么
附录A 动态作用域
附录B 块作用域的替代方案
附录C this词法
附录D 致谢
第二部分 this和对象原型
附录A ES6中的Class
封底
你不知道的 JavaScript(下卷)
封面
版权
目录
前言
第一部分 起步上路
序
第1章 深入编程
1.1 代码
1.2 表达式
1.3 实践
1.3.1 输出
1.3.2 输入
1.4 运算符
1.5 值与类型
1.6 代码注释
1.7 变量
1.8 块
1.9 条件判断
1.10 循环
1.11 函数
1.12 实践
1.13 小结
第2章 深入JavaScript
2.1 值与类型
2.1.1 对象
2.1.2 内置类型方法
2.1.3 值的比较
2.2 变量
2.3 条件判断
2.4 严格模式
2.5 作为值的函数
2.5.1 立即调用函数表达式
2.5.2 闭包
2.6 this标识符
2.7 原型
2.8 旧与新
2.8.1 polyfilling
2.8.2 transpiling
2.9 非JavaScript
2.10 小结
第3章 深入“你不知道的JavaScript”系列
3.1 作用域和闭包
3.2 this和对象原型
3.3 类型和语法
3.4 异步和性能
3.5 ES6及更新版本
3.6 小结
第二部分 ES6及更新版本
序
第1章 ES?现在与未来
1.1 版本
1.2 transpiling
1.3 小结
第2章 语法
2.1 块作用域声明
2.1.1 let声明
2.1.2 const声明
2.1.3 块作用域函数
2.2 spread/rest
2.3 默认参数值
2.4 解构
2.4.1 对象属性复制模式
2.4.2 不只是声明
2.4.3 重复赋值
2.5 太多,太少,刚刚好
2.5.1 默认值赋值
2.5.2 嵌套解构
2.5.3 解构参数
2.6 对象字面量扩展
2.6.1 简洁属性
2.6.2 简洁方法
2.6.3 计算属性名
2.6.4 设定[[Prototype]]
2.6.5 super对象
2.7 模板字面量
2.7.1 插入表达式
2.7.2 标签模板字面量
2.8 箭头函数
2.9 for..of循环
2.10 正则表达式
2.10.1 Unicode标识
2.10.2 定点标识
2.10.3 正则表达式flags
2.11 数字字面量扩展
2.12 Unicode
2.12.1 支持Unicode的字符串运算
2.12.2 字符定位
2.12.3 Unicode标识符名
2.13 符号
2.13.1 符号注册
2.13.2 作为对象属性的符号
2.14 小结
第3章 代码组织
3.1 迭代器
3.1.1 接口
3.1.2 next()迭代
3.1.3 可选的return(..)和throw(..)
3.1.4 迭代器循环
3.1.5 自定义迭代器
3.1.6 迭代器消耗
3.2 生成器
3.2.1 语法
3.2.2 迭代器控制
3.2.3 提前完成
3.2.4 错误处理
3.2.5 Transpile生成器
3.2.6 生成器使用
3.3 模块
3.3.1 旧方法
3.3.2 前进
3.3.3 新方法
3.3.4 模块依赖环
3.3.5 模块加载
3.4 类
3.4.1 class
3.4.2 extends和super
3.4.3 new.target
3.4.4 static
3.5 小结
第4章 异步流控制
4.1 Promise
4.1.1 构造和使用Promise
4.1.2 Thenable
4.1.3 Promise API
4.2 生成器 + Promise
4.3 小结
第5章 集合
5.1 TypedArray
5.1.1 大小端(Endianness)
5.1.2 多视图
5.1.3 带类数组构造器
5.2 Map
5.2.1 Map值
5.2.2 Map键
5.3 WeakMap
5.4 Set
5.5 WeakSet
5.6 小结
第6章 新增API
6.1 Array
6.1.1 静态函数Array.of(..)
6.1.2 静态函数Array.from(..)
6.1.3 创建数组和子类型
6.1.4 原型方法copyWithin(..)
6.1.5 原型方法fill(..)
6.1.6 原型方法find(..)
6.1.7 原型方法findIndex(..)
6.1.8 原型方法entries()、values()、keys()
6.2 Object
6.2.1 静态函数Object.is(..)
6.2.2 静态函数Object.getOwnPropertySymbols(..)
6.2.3 静态函数Object.setPrototypeOf(..)
6.2.4 静态函数Object.assign(..)
6.3 Math
6.4 Number
6.4.1 静态属性
6.4.2 静态函数Number.isNaN(..)
6.4.3 静态函数Number.isFinite(..)
6.4.4 整型相关静态函数
6.5 字符串
6.5.1 Unicode函数
6.5.2 静态函数String.raw(..)
6.5.3 原型函数repeat(..)
6.5.4 字符串检查函数
6.6 小结
第7章 元编程
7.1 函数名称
7.2 元属性
7.3 公开符号
7.3.1 Symbol.iterator
7.3.2 Symbol.toStringTag与Symbol.hasInstance
7.3.3 Symbol.species
7.3.4 Symbol.toPrimitive
7.3.5 正则表达式符号
7.3.6 Symbol.isConcatSpreadable
7.3.7 Symbol.unscopables
7.4 代理
7.4.1 代理局限性
7.4.2 可取消代理
7.4.3 使用代理
7.5 Reflect API
7.6 特性测试
7.7 尾递归调用(Tail Call Optimization,TCO)
7.7.1 尾调用重写
7.7.2 非TCO优化
7.7.3 元在何处
7.8 小结
第8章 ES6之后
8.1 异步函数
8.2 Object.observe(..)
8.2.1 自定义改变事件
8.2.2 结束观测
8.3 幂运算符
8.4 对象属性与...
8.5 Array#includes
8.6 SIMD
8.7 WebAssembly (WASM)
8.8 小结
📜 SIMILAR VOLUMES
JavaScript语言有很多复杂的概念,但却用简单的方式体现出来(比如回调函数),因此,JavaScript开发者无需理解语言内部的原理,就能编写出功能全面的程序;就像收音机一样,你无需理解里面的管子和线圈都是做什么用的,只要会操作收音机上的按键,就可以收听你喜欢的节目。然而,JavaScript的这些复杂精妙的概念才是语言的精髓,即使是经验丰富的JavaScript开发者,如果没有认真学习也无法真正理解语言本身的特性。正是因为绝大多数人不求甚解,一遇到出乎意料的行为就认为是语言本身有缺陷,进而把相关的特性加入黑名单,久而久之就排除了这门语言的多样性,人为地使它变得不完整、不安全。 “