作者简介
内容提要
译者简介
要感谢的人:
对本书的赞誉
阅前须知
阅前建议
本书的四部分内容
JavaScript命令行
符号说明
快速查询文档
Safari® Books Online
审稿人
第1部分 JavaScript快速上手
第1章 基础JavaScript
1.1 背景
1.2 语法
1.3 变量和赋值
1.4 值
1.5 布尔值
1.6 数字
1.7 运算符
1.8 字符串
1.9 语句
1.10 函数
1.11 异常捕获
1.12 严格模式
1.13 变量作用域和闭包
1.14 对象和构造函数
1.15 数组
1.16 正则表达式
1.17 Math
1.18 标准库的其他功能
第2部分 背景
第2章 为什么选择JavaScript
2.1 JavaScript可以自由使用吗
2.2 JavaScript优雅吗
2.3 JavaScript有用吗
2.4 JavaScript有什么好用的工具吗
2.5 JavaScript是否足够快
2.6 JavaScript是广泛使用的吗
2.7 JavaScript有前途吗
2.8 结论
第3章 JavaScript的性质
3.1 古怪和非官方特性
3.2 优雅部分
3.3 影响
第4章 JavaScript是如何创造出来的
第5章 标准化:ECMAScript
第6章 JavaScript的历史里程碑
第3部分 深入JavaScript
第7章 JavaScript的语法
7.1 语法概览
7.2 注释
7.3 表达式与语句
7.4 控制流语句和块
7.5 使用分号的规则
7.6 合法标识符
7.7 数字字面量的方法调用
7.8 严格模式
第8章 值
8.1 JavaScript中的类型体系
8.2 原始值和对象
8.3 undefined和null
8.4 原始值的包装对象
8.5 强制类型转换
第9章 运算符
9.1 运算符和对象
9.2 赋值运算符
9.3 等号运算符:===和==
9.4 排序运算符
9.5 加号运算符(+)
9.6 布尔运算符和数字运算符
9.7 特殊运算符
9.8 通过typeof和instanceof判断值类型
9.9 对象运算符
第10章 布尔类型
10.1 转换成布尔值
10.2 逻辑运算符
10.3 等号运算符、排序运算符
10.4 Boolean函数
第11章 数字
11.1 数字字面量
11.2 转换成数字
11.3 特殊的数字值
11.4 数字的内部表示
11.5 处理舍入错误
11.6 JavaScript中的整型
11.7 转换成整数
11.8 算术运算符
11.9 位运算符
11.10 Number函数
11.11 Number构造器属性
11.12 Number原型方法
11.13 用于数字的函数
11.14 本章参考资料
第12章 字符串
12.1 字符串字面量
12.2 字符串字面量中的转义字符
12.3 字符访问
12.4 转换为字符串
12.5 字符串比较
12.6 字符串拼接
12.7 字符串函数
12.8 字符串构造器方法
12.9 字符串length属性
12.10 字符串原型方法
第13章 语句
13.1 声明和变量赋值
13.2 循环语句和条件语句的主体
13.3 循环
13.4 条件语句
13.5 with语句
13.6 debugger语句
第14章 异常捕获
14.1 什么是异常捕获
14.2 JavaScript中的异常捕获
14.3 Error构造器
14.4 栈跟踪
14.5 实现一个自己的异常构造器
第15章 函数
15.1 JavaScript中函数的3种形式
15.2 术语:“形参”和“实参”
15.3 定义函数
15.4 函数提升
15.5 函数的名称
15.6 哪个更好,函数声明还是函数表达式
15.7 控制函数调用:call(), apply()和bind()
15.8 参数缺失或者超出时的处理
15.9 具名参数
第16章 变量:作用域、环境和闭包
16.1 定义变量
16.2 背景知识:静态性和动态性
16.3 背景知识:变量的作用域
16.4 变量以函数为作用域
16.5 变量声明的提前
16.6 通过IIFE引入新的作用域
16.7 全局变量
16.8 全局对象
16.9 环境:变量的管理
16.10 闭包:使得函数可以维持其创建时所在的作用域
第17章 对象与继承
17.1 第1层:单一对象
17.2 把任意值转化为对象
17.3 this作为函数和方法的隐式参数
17.4 第2层:对象间的原型关系
17.5 遍历和检测属性
17.6 最佳实践:遍历自有属性
17.7 访问器(getter和setter)
17.8 属性特性和属性描述符
17.9 保护对象
17.10 第3层:构造函数——实例工厂
17.11 原型属性中的数据
17.12 保持数据私有性
17.13 第4层:构造函数之间的继承
17.14 所有对象的方法
17.15 泛型方法:借用原型方法
17.16 缺陷:Object作为Map使用
17.17 备忘录:对象的使用
第18章 数组
18.1 概述
18.2 创建数组
18.4 长度
18.5 数组中的“空缺”
18.6 数组构造函数
18.7 数组原型方法
18.8 添加和删除元素(破坏性地)
18.9 排序和颠倒元素顺序(破坏性地)
18.10 合并、切分和连接(非破坏性地)
18.11 值的查找(非破坏性地)
18.12 迭代(非破坏性地)
18.13 缺陷:类数组对象
18.14 最佳实践:遍历数组
第19章 正则表达式
19.1 正则表达式语法
19.2 Unicode和正则表达式
19.3 创建正则表达式
19.4 RegExp.prototype.test:是否存在匹配
19.6 RegExp.prototype.exec:捕获分组
19.7 String.prototype.match:捕获分组或返回所有匹配的子字符串
19.8 String.prototype.replace:查找和替换
19.9 标识/g的一些问题
19.10 提示与技巧
19.11 正则表达式备忘单
第20章 Date
20.1 Date构造函数
20.2 Date构造函数方法
20.3 Date原型方法
20.4 日期和时间格式
20.5 时间值:从1970-01-01开始的毫秒数
第21章 Math
21.1 Math属性
21.2 数值函数
21.3 三角函数
21.4 其他函数
第22章 JSON
22.1 背景
22.2 JSON.stringify(value, replacer?, space?)
22.3 JSON.parse(text, reviver?)
22.4 通过节点访问函数转换数据
第23章 标准全局变量
23.1 构造器
23.2 Error构造器
23.3 非构造器函数
23.4 通过eval()和new Function()来动态执行JavaScript代码
23.5 Console API
23.6 名称空间和特殊值
第24章 编码和JavaScript
24.1 Unicode历史
24.2 Unicode中的重要概念
24.3 码位
24.4 Unicode编码
24.5 JavaScript源码和Unicode
24.6 JavaScript字符串和Unicode
24.7 JavaScript正则表达式和Unicode
第25章 ECMAScript 5的新特性
25.1 新特性
25.2 语法的改变
25.3 标准库的新功能
25.4 兼容旧浏览器的小贴士
第4部分 技巧、工具和类库
第26章 元编程风格指南
26.1 现有风格指南
26.2 通用技巧
26.3 普遍认可的最佳实践
26.4 具有争议的规则
26.5 结论
第27章 调试的语言机制
第28章 子类化内置构造函数
28.1 术语
28.2 障碍1:具有内部属性的实例
28.3 障碍2:内置的构造函数不能作为方法调用
28.4 另一种解决方案:委托
第29章 JSDoc:生成API文档
29.1 JSDoc基础
29.2 基础的标签
29.3 文档记录函数和方法
29.4 行内类型信息(“行内文档注释”)
29.5 文档记录变量、参数和实例属性
29.6 文档记录类
29.7 其他有用的标签
第30章 类库
30.1 shim和polyfill
30.2 四个语言类库
30.3 ECMAScript的国际化API
第31章 模块系统和包管理器
31.1 模块系统
31.2 包管理器
31.3 简单粗暴的模块实现
第32章 其他工具
第33章 接下来该做什么
看完了