科技
类型
8.6
豆瓣评分
可以朗读
语音朗读
998千字
字数
2020-08-01
发行日期
展开全部
主编推荐语
JavaScript经典图书第4版。
内容简介
本书涵盖ECMAScript 2019,全面、深入地介绍了JavaScript开发者必须掌握的前端开发技术,涉及JavaScript的基础特性和高级特性。
书中详尽讨论了JavaScript的各个方面,从JavaScript的起源开始,逐步讲解到新出现的技术,其中重点介绍ECMAScript和DOM标准。在此基础上,接下来的各章揭示了JavaScript的基本概念,包括类、期约、迭代器、代理,等等。
另外,书中深入探讨了客户端检测、事件、动画、表单、错误处理及JSON。本书同时也介绍了近几年来涌现的重要新规范,包括Fetch API、模块、工作者线程、服务线程以及大量新API。
目录
- 版权信息
- 献词
- 译者序
- 序
- 前言
- 读者对象
- 本书内容
- 组织结构
- 预备条件
- 电子书及附录
- 致谢
- 第1章 什么是JavaScript
- 1.1 简短的历史回顾
- 1.2 JavaScript实现
- 1.2.1 ECMAScript
- 1.2.2 DOM
- 1.2.3 BOM
- 1.3 JavaScript版本
- 1.4 小结
- 第2章 HTML中的JavaScript
- 2.1 <script>元素
- 2.1.1 标签占位符
- 2.1.2 推迟执行脚本
- 2.1.3 异步执行脚本
- 2.1.4 动态加载脚本
- 2.1.5 XHTML中的变化
- 2.1.6 废弃的语法
- 2.2 行内代码与外部文件
- 2.3 文档模式
- 2.4 <noscript>元素
- 2.5 小结
- 第3章 语言基础
- 3.1 语法
- 3.1.1 区分大小写
- 3.1.2 标识符
- 3.1.3 注释
- 3.1.4 严格模式
- 3.1.5 语句
- 3.2 关键字与保留字
- 3.3 变量
- 3.3.1 var关键字
- 3.3.2 let声明
- 3.3.3 const声明
- 3.3.4 声明风格及最佳实践
- 3.4 数据类型
- 3.4.1 typeof操作符
- 3.4.2 Undefined类型
- 3.4.3 Null类型
- 3.4.4 Boolean类型
- 3.4.5 Number类型
- 3.4.6 String类型
- 3.4.7 Symbol类型
- 3.4.8 Object类型
- 3.5 操作符
- 3.5.1 一元操作符
- 3.5.2 位操作符
- 3.5.3 布尔操作符
- 3.5.4 乘性操作符
- 3.5.5 指数操作符
- 3.5.6 加性操作符
- 3.5.7 关系操作符
- 3.5.8 相等操作符
- 3.5.9 条件操作符
- 3.5.10 赋值操作符
- 3.5.11 逗号操作符
- 3.6 语句
- 3.6.1 if语句
- 3.6.2 do-while语句
- 3.6.3 while语句
- 3.6.4 for语句
- 3.6.5 for-in语句
- 3.6.6 for-of语句
- 3.6.7 标签语句
- 3.6.8 break和continue语句
- 3.6.9 with语句
- 3.6.10 switch语句
- 3.7 函数
- 3.8 小结
- 第4章 变量、作用域与内存
- 4.1 原始值与引用值
- 4.1.1 动态属性
- 4.1.2 复制值
- 4.1.3 传递参数
- 4.1.4 确定类型
- 4.2 执行上下文与作用域
- 4.2.1 作用域链增强
- 4.2.2 变量声明
- 4.3 垃圾回收
- 4.3.1 标记清理
- 4.3.2 引用计数
- 4.3.3 性能
- 4.3.4 内存管理
- 4.4 小结
- 第5章 基本引用类型
- 5.1 Date
- 5.1.1 继承的方法
- 5.1.2 日期格式化方法
- 5.1.3 日期/时间组件方法
- 5.2 RegExp
- 5.2.1 RegExp实例属性
- 5.2.2 RegExp实例方法
- 5.2.3 RegExp构造函数属性
- 5.2.4 模式局限
- 5.3 原始值包装类型
- 5.3.1 Boolean
- 5.3.2 Number
- 5.3.3 String
- 5.4 单例内置对象
- 5.4.1 Global
- 5.4.2 Math
- 5.5 小结
- 第6章 集合引用类型
- 6.1 Object
- 6.2 Array
- 6.2.1 创建数组
- 6.2.2 数组空位
- 6.2.3 数组索引
- 6.2.4 检测数组
- 6.2.5 迭代器方法
- 6.2.6 复制和填充方法
- 6.2.7 转换方法
- 6.2.8 栈方法
- 6.2.9 队列方法
- 6.2.10 排序方法
- 6.2.11 操作方法
- 6.2.12 搜索和位置方法
- 6.2.13 迭代方法
- 6.2.14 归并方法
- 6.3 定型数组
- 6.3.1 历史
- 6.3.2 ArrayBuffer
- 6.3.3 DataView
- 6.3.4 定型数组
- 6.4 Map
- 6.4.1 基本API
- 6.4.2 顺序与迭代
- 6.4.3 选择Object还是Map
- 6.5 WeakMap
- 6.5.1 基本API
- 6.5.2 弱键
- 6.5.3 不可迭代键
- 6.5.4 使用弱映射
- 6.6 Set
- 6.6.1 基本API
- 6.6.2 顺序与迭代
- 6.6.3 定义正式集合操作
- 6.7 WeakSet
- 6.7.1 基本API
- 6.7.2 弱值
- 6.7.3 不可迭代值
- 6.7.4 使用弱集合
- 6.8 迭代与扩展操作
- 6.9 小结
- 第7章 迭代器与生成器
- 7.1 理解迭代
- 7.2 迭代器模式
- 7.2.1 可迭代协议
- 7.2.2 迭代器协议
- 7.2.3 自定义迭代器
- 7.2.4 提前终止迭代器
- 7.3 生成器
- 7.3.1 生成器基础
- 7.3.2 通过yield中断执行
- 7.3.3 生成器作为默认迭代器
- 7.3.4 提前终止生成器
- 7.4 小结
- 第8章 对象、类与面向对象编程
- 8.1 理解对象
- 8.1.1 属性的类型
- 8.1.2 定义多个属性
- 8.1.3 读取属性的特性
- 8.1.4 合并对象
- 8.1.5 对象标识及相等判定
- 8.1.6 增强的对象语法
- 8.1.7 对象解构
- 8.2 创建对象
- 8.2.1 概述
- 8.2.2 工厂模式
- 8.2.3 构造函数模式
- 8.2.4 原型模式
- 8.2.5 对象迭代
- 8.3 继承
- 8.3.1 原型链
- 8.3.2 盗用构造函数
- 8.3.3 组合继承
- 8.3.4 原型式继承
- 8.3.5 寄生式继承
- 8.3.6 寄生式组合继承
- 8.4 类
- 8.4.1 类定义
- 8.4.2 类构造函数
- 8.4.3 实例、原型和类成员
- 8.4.4 继承
- 8.5 小结
- 第9章 代理与反射
- 9.1 代理基础
- 9.1.1 创建空代理
- 9.1.2 定义捕获器
- 9.1.3 捕获器参数和反射API
- 9.1.4 捕获器不变式
- 9.1.5 可撤销代理
- 9.1.6 实用反射API
- 9.1.7 代理另一个代理
- 9.1.8 代理的问题与不足
- 9.2 代理捕获器与反射方法
- 9.2.1 get()
- 9.2.2 set()
- 9.2.3 has()
- 9.2.4 defineProperty()
- 9.2.5 getOwnPropertyDescriptor()
- 9.2.6 deleteProperty()
- 9.2.7 ownKeys()
- 9.2.8 getPrototypeOf()
- 9.2.9 setPrototypeOf()
- 9.2.10 isExtensible()
- 9.2.11 preventExtensions()
- 9.2.12 apply()
- 9.2.13 construct()
- 9.3 代理模式
- 9.3.1 跟踪属性访问
- 9.3.2 隐藏属性
- 9.3.3 属性验证
- 9.3.4 函数与构造函数参数验证
- 9.3.5 数据绑定与可观察对象
- 9.4 小结
- 第10章 函数
- 10.1 箭头函数
- 10.2 函数名
- 10.3 理解参数
- 箭头函数中的参数
- 10.4 没有重载
- 10.5 默认参数值
- 默认参数作用域与暂时性死区
- 10.6 参数扩展与收集
- 10.6.1 扩展参数
- 10.6.2 收集参数
- 10.7 函数声明与函数表达式
- 10.8 函数作为值
- 10.9 函数内部
- 10.9.1 arguments
- 10.9.2 this
- 10.9.3 caller
- 10.9.4 new.target
- 10.10 函数属性与方法
- 10.11 函数表达式
- 10.12 递归
- 10.13 尾调用优化
- 10.13.1 尾调用优化的条件
- 10.13.2 尾调用优化的代码
- 10.14 闭包
- 10.14.1 this对象
- 10.14.2 内存泄漏
- 10.15 立即调用的函数表达式
- 10.16 私有变量
- 10.16.1 静态私有变量
- 10.16.2 模块模式
- 10.16.3 模块增强模式
- 10.17 小结
- 第11章 期约与异步函数
- 11.1 异步编程
- 11.1.1 同步与异步
- 11.1.2 以往的异步编程模式
- 11.2 期约
- 11.2.1 Promises/A+规范
- 11.2.2 期约基础
- 11.2.3 期约的实例方法
- 11.2.4 期约连锁与期约合成
- 11.2.5 期约扩展
- 11.3 异步函数
- 11.3.1 异步函数
- 11.3.2 停止和恢复执行
- 11.3.3 异步函数策略
- 11.4 小结
- 第12章 BOM
- 12.1 window对象
- 12.1.1 Global作用域
- 12.1.2 窗口关系
- 12.1.3 窗口位置与像素比
- 12.1.4 窗口大小
- 12.1.5 视口位置
- 12.1.6 导航与打开新窗口
- 12.1.7 定时器
- 12.1.8 系统对话框
- 12.2 location对象
- 12.2.1 查询字符串
- 12.2.2 操作地址
- 12.3 navigator对象
- 12.3.1 检测插件
- 12.3.2 注册处理程序
- 12.4 screen对象
- 12.5 history对象
- 12.5.1 导航
- 12.5.2 历史状态管理
- 12.6 小结
- 第13章 客户端检测
- 13.1 能力检测
- 13.1.1 安全能力检测
- 13.1.2 基于能力检测进行浏览器分析
- 13.2 用户代理检测
- 13.2.1 用户代理的历史
- 13.2.2 浏览器分析
- 13.3 软件与硬件检测
- 13.3.1 识别浏览器与操作系统
- 13.3.2 浏览器元数据
- 13.3.3 硬件
- 13.4 小结
- 第14章 DOM
- 14.1 节点层级
- 14.1.1 Node类型
- 14.1.2 Document类型
- 14.1.3 Element类型
- 14.1.4 Text类型
- 14.1.5 Comment类型
- 14.1.6 CDATASection类型
- 14.1.7 DocumentType类型
- 14.1.8 DocumentFragment类型
- 14.1.9 Attr类型
- 14.2 DOM编程
- 14.2.1 动态脚本
- 14.2.2 动态样式
- 14.2.3 操作表格
- 14.2.4 使用NodeList
- 14.3 MutationObschmerver接口
- 14.3.1 基本用法
- 14.3.2 MutationObschmerverInit与观察范围
- 14.3.3 异步回调与记录队列
- 14.3.4 性能、内存与垃圾回收
- 14.4 小结
- 第15章 DOM扩展
- 15.1 Selectors API
- 15.1.1 querySelector()
- 15.1.2 querySelectorAll()
- 15.1.3 matches()
- 15.2 元素遍历
- 15.3 HTML5
- 15.3.1 CSS类扩展
- 15.3.2 焦点管理
- 15.3.3 HTMLDocument扩展
- 15.3.4 字符集属性
- 15.3.5 自定义数据属性
- 15.3.6 插入标记
- 15.3.7 scrollIntoView()
- 15.4 专有扩展
- 15.4.1 children属性
- 15.4.2 contains()方法
- 15.4.3 插入标记
- 15.4.4 滚动
- 15.5 小结
- 第16章 DOM2和DOM3
- 16.1 DOM的演进
- 16.1.1 XML命名空间
- 16.1.2 其他变化
- 16.2 样式
- 16.2.1 存取元素样式
- 16.2.2 操作样式表
- 16.2.3 元素尺寸
- 16.3 遍历
- 16.3.1 NodeIterator
- 16.3.2 TreeWalker
- 16.4 范围
- 16.4.1 DOM范围
- 16.4.2 简单选择
- 16.4.3 复杂选择
- 16.4.4 操作范围
- 16.4.5 范围插入
- 16.4.6 范围折叠
- 16.4.7 范围比较
- 16.4.8 复制范围
- 16.4.9 清理
- 16.5 小结
- 第17章 事件
- 17.1 事件流
- 17.1.1 事件冒泡
- 17.1.2 事件捕获
- 17.1.3 DOM事件流
- 17.2 事件处理程序
- 17.2.1 HTML事件处理程序
- 17.2.2 DOM0事件处理程序
- 17.2.3 DOM2事件处理程序
- 17.2.4 IE事件处理程序
- 17.2.5 跨浏览器事件处理程序
- 17.3 事件对象
- 17.3.1 DOM事件对象
- 17.3.2 IE事件对象
- 17.3.3 跨浏览器事件对象
- 17.4 事件类型
- 17.4.1 用户界面事件
- 17.4.2 焦点事件
- 17.4.3 鼠标和滚轮事件
- 17.4.4 键盘与输入事件
- 17.4.5 合成事件
- 17.4.6 变化事件
- 17.4.7 HTML5事件
- 17.4.8 设备事件
- 17.4.9 触摸及手势事件
- 17.4.10 事件参考
- 17.5 内存与性能
- 17.5.1 事件委托
- 17.5.2 删除事件处理程序
- 17.6 模拟事件
- 17.6.1 DOM事件模拟
- 17.6.2 IE事件模拟
- 17.7 小结
- 第18章 动画与Canvas图形
- 18.1 使用requestAnimationFrame
- 18.1.1 早期定时动画
- 18.1.2 时间间隔的问题
- 18.1.3 requestAnimationFrame
- 18.1.4 cancelAnimationFrame
- 18.1.5 通过requestAnimationFrame节流
- 18.2 基本的画布功能
- 18.3 2D绘图上下文
- 18.3.1 填充和描边
- 18.3.2 绘制矩形
- 18.3.3 绘制路径
- 18.3.4 绘制文本
- 18.3.5 变换
- 18.3.6 绘制图像
- 18.3.7 阴影
- 18.3.8 渐变
- 18.3.9 图案
- 18.3.10 图像数据
- 18.3.11 合成
- 18.4 WebGL
- 18.4.1 WebGL上下文
- 18.4.2 WebGL基础
- 18.4.3 WebGL1与WebGL2
- 18.5 小结
- 第19章 表单脚本
- 19.1 表单基础
- 19.1.1 提交表单
- 19.1.2 重置表单
- 19.1.3 表单字段
- 19.2 文本框编程
- 19.2.1 选择文本
- 19.2.2 输入过滤
- 19.2.3 自动切换
- 19.2.4 HTML5约束验证API
- 19.3 选择框编程
- 19.3.1 选项处理
- 19.3.2 添加选项
- 19.3.3 移除选项
- 19.3.4 移动和重排选项
- 19.4 表单序列化
- 19.5 富文本编辑
- 19.5.1 使用contenteditable
- 19.5.2 与富文本交互
- 19.5.3 富文件选择
- 19.5.4 通过表单提交富文本
- 19.6 小结
- 第20章 JavaScript API
- 20.1 Atomics与SharedArrayBuffer
- 20.1.1 SharedArrayBuffer
- 20.1.2 原子操作基础
- 20.2 跨上下文消息
- 20.3 Encoding API
- 20.3.1 文本编码
- 20.3.2 文本解码
- 20.4 File API与Blob API
- 20.4.1 File类型
- 20.4.2 FileReader类型
- 20.4.3 FileReaderSync类型
- 20.4.4 Blob与部分读取
- 20.4.5 对象URL与Blob
- 20.4.6 读取拖放文件
- 20.5 媒体元素
- 20.5.1 属性
- 20.5.2 事件
- 20.5.3 自定义媒体播放器
- 20.5.4 检测编解码器
- 20.5.5 音频类型
- 20.6 原生拖放
- 20.6.1 拖放事件
- 20.6.2 自定义放置目标
- 20.6.3 dataTransfer对象
- 20.6.4 dropEffect与effectAllowed
- 20.6.5 可拖动能力
- 20.6.6 其他成员
- 20.7 Notifications API
- 20.7.1 通知权限
- 20.7.2 显示和隐藏通知
- 20.7.3 通知生命周期回调
- 20.8 Page Visibility API
- 20.9 Streams API
- 20.9.1 理解流
- 20.9.2 可读流
- 20.9.3 可写流
- 20.9.4 转换流
- 20.9.5 通过管道连接流
- 20.10 计时API
- 20.10.1 High Resolution Time API
- 20.10.2 Performance Timeline API
- 20.11 Web组件
- 20.11.1 HTML模板
- 20.11.2 影子DOM
- 20.11.3 自定义元素
- 20.12 Web Cryptography API
- 20.12.1 生成随机数
- 20.12.2 使用SubtleCrypto对象
- 20.13 小结
- 第21章 错误处理与调试
- 21.1 浏览器错误报告
- 21.1.1 桌面控制台
- 21.1.2 移动控制台
- 21.2 错误处理
- 21.2.1 try/catch语句
- 21.2.2 抛出错误
- 21.2.3 error事件
- 21.2.4 错误处理策略
- 21.2.5 识别错误
- 21.2.6 区分重大与非重大错误
- 21.2.7 把错误记录到服务器中
- 21.3 调试技术
- 21.3.1 把消息记录到控制台
- 21.3.2 理解控制台运行时
- 21.3.3 使用JavaScript调试器
- 21.3.4 在页面中打印消息
- 21.3.5 补充控制台方法
- 21.3.6 抛出错误
- 21.4 旧版IE的常见错误
- 21.4.1 无效字符
- 21.4.2 未找到成员
- 21.4.3 未知运行时错误
- 21.4.4 语法错误
- 21.4.5 系统找不到指定资源
- 21.5 小结
- 第22章 处理XML
- 22.1 浏览器对XML DOM的支持
- 22.1.1 DOM Level 2 Core
- 22.1.2 DOMParser类型
- 22.1.3 XMLSerializer类型
- 22.2 浏览器对XPath的支持
- 22.2.1 DOM Level 3 XPath
- 22.2.2 单个节点结果
- 22.2.3 简单类型结果
- 22.2.4 默认类型结果
- 22.2.5 命名空间支持
- 22.3 浏览器对XSLT的支持
- 22.3.1 XSLTProcessor类型
- 22.3.2 使用参数
- 22.3.3 重置处理器
- 22.4 小结
- 第23章 JSON
- 23.1 语法
- 23.1.1 简单值
- 23.1.2 对象
- 23.1.3 数组
- 23.2 解析与序列化
- 23.2.1 JSON对象
- 23.2.2 序列化选项
- 23.2.3 解析选项
- 23.3 小结
- 第24章 网络请求与远程资源
- 24.1 XMLHttpRequest对象
- 24.1.1 使用XHR
- 24.1.2 HTTP头部
- 24.1.3 GET请求
- 24.1.4 POST请求
- 24.1.5 XMLHttpRequest Level 2
- 24.2 进度事件
- 24.2.1 load事件
- 24.2.2 progress事件
- 24.3 跨源资源共享
- 24.3.1 预检请求
- 24.3.2 凭据请求
- 24.4 替代性跨源技术
- 24.4.1 图片探测
- 24.4.2 JSONP
- 24.5 Fetch API
- 24.5.1 基本用法
- 24.5.2 常见Fetch请求模式
- 24.5.3 Headers对象
- 24.5.4 Request对象
- 24.5.5 Response对象
- 24.5.6 Request、Response及Body混入
- 24.6 Beacon API
- 24.7 Web Socket
- 24.7.1 API
- 24.7.2 发送和接收数据
- 24.7.3 其他事件
- 24.8 安全
- 24.9 小结
- 第25章 客户端存储
- 25.1 cookie
- 25.1.1 限制
- 25.1.2 cookie的构成
- 25.1.3 JavaScript中的cookie
- 25.1.4 子cookie
- 25.1.5 使用cookie的注意事项
- 25.2 Web Storage
- 25.2.1 Storage类型
- 25.2.2 sessionStorage对象
- 25.2.3 localStorage对象
- 25.2.4 存储事件
- 25.2.5 限制
- 25.3 IndexedDB
- 25.3.1 数据库
- 25.3.2 对象存储
- 25.3.3 事务
- 25.3.4 插入对象
- 25.3.5 通过游标查询
- 25.3.6 键范围
- 25.3.7 设置游标方向
- 25.3.8 索引
- 25.3.9 并发问题
- 25.3.10 限制
- 25.4 小结
- 第26章 模块
- 26.1 理解模块模式
- 26.1.1 模块标识符
- 26.1.2 模块依赖
- 26.1.3 模块加载
- 26.1.4 入口
- 26.1.5 异步依赖
- 26.1.6 动态依赖
- 26.1.7 静态分析
- 26.1.8 循环依赖
- 26.2 凑合的模块系统
- 26.3 使用ES6之前的模块加载器
- 26.3.1 CommonJS
- 26.3.2 异步模块定义
- 26.3.3 通用模块定义
- 26.3.4 模块加载器终将没落
- 26.4 使用ES6模块
- 26.4.1 模块标签及定义
- 26.4.2 模块加载
- 26.4.3 模块行为
- 26.4.4 模块导出
- 26.4.5 模块导入
- 26.4.6 模块转移导出
- 26.4.7 工作者模块
- 26.4.8 向后兼容
- 26.5 小结
- 第27章 工作者线程
- 27.1 工作者线程简介
- 27.1.1 工作者线程与线程
- 27.1.2 工作者线程的类型
- 27.1.3 WorkerGlobalScope
- 27.2 专用工作者线程
- 27.2.1 专用工作者线程的基本概念
- 27.2.2 专用工作者线程与隐式MessagePorts
- 27.2.3 专用工作者线程的生命周期
- 27.2.4 配置Worker选项
- 27.2.5 在JavaScript行内创建工作者线程
- 27.2.6 在工作者线程中动态执行脚本
- 27.2.7 委托任务到子工作者线程
- 27.2.8 处理工作者线程错误
- 27.2.9 与专用工作者线程通信
- 27.2.10 工作者线程数据传输
- 27.2.11 线程池
- 27.3 共享工作者线程
- 27.3.1 共享工作者线程简介
- 27.3.2 理解共享工作者线程的生命周期
- 27.3.3 连接到共享工作者线程
- 27.4 服务工作者线程
- 27.4.1 服务工作者线程基础
- 27.4.2 服务工作者线程缓存
- 27.4.3 服务工作者线程客户端
- 27.4.4 服务工作者线程与一致性
- 27.4.5 理解服务工作者线程的生命周期
- 27.4.6 控制反转与服务工作者线程持久化
- 27.4.7 通过updateViaCache管理服务文件缓存
- 27.4.8 强制性服务工作者线程操作
- 27.4.9 服务工作者线程消息
- 27.4.10 拦截fetch事件
- 27.4.11 推送通知
- 27.5 小结
- 第28章 最佳实践
- 28.1 可维护性
- 28.1.1 什么是可维护的代码
- 28.1.2 编码规范
- 28.1.3 松散耦合
- 28.1.4 编码惯例
- 28.2 性能
- 28.2.1 作用域意识
- 28.2.2 选择正确的方法
- 28.2.3 语句最少化
- 28.2.4 优化DOM交互
- 28.3 部署
- 28.3.1 构建流程
- 28.3.2 验证
- 28.3.3 压缩
- 28.4 小结
- 附录A ES2018和ES2019
- A.1 异步迭代
- A.1.1 创建并使用异步迭代器
- A.1.2 理解异步迭代器队列
- A.1.3 处理异步迭代器的reject()
- A.1.4 使用next()手动异步迭代
- A.1.5 顶级异步循环
- A.1.6 实现可观察对象
- A.2 对象字面量的剩余操作符和扩展操作符
- A.2.1 剩余操作符
- A.2.2 扩展操作符
- A.3 Promise.prototype.finally()
- A.4 正则表达式相关特性
- A.4.1 dotAll标志
- A.4.2 向后查找断言
- A.4.3 命名捕获组
- A.4.4 Unicode属性转义
- A.5 数组打平方法
- A.5.1 Array.prototype.flatten()
- A.5.2 Array.prototype.flatMap()
- A.6 Object.fromEntries()
- A.7 字符串修理方法
- A.8 Symbol.prototype.description
- A.9 可选的catch绑定
- A.10 其他新增内容
- 附录B 严格模式
- B.1 选择使用
- B.2 变量
- B.3 对象
- B.4 函数
- B.4.1 函数参数
- B.4.2 eval()
- B.4.3 eval与arguments
- B.5 this强制转型
- B.6 类与模块
- B.7 其他变化
- 附录C JavaScript库和框架
- C.1 框架
- C.1.1 React
- C.1.2 Angular
- C.1.3 Vue
- C.1.4 Ember
- C.1.5 Meteor
- C.1.6 Backbone.js
- C.2 通用库
- C.2.1 jQuery
- C.2.2 Google Closure Library
- C.2.3 Underscore.js
- C.2.4 Lodash
- C.2.5 Prototype
- C.2.6 Dojo Toolkit
- C.2.7 MooTools
- C.2.8 qooxdoo
- C.3 动画与特效
- C.3.1 D3
- C.3.2 three.js
- C.3.3 moo.fx
- C.3.4 Lightbox
- 附录D JavaScript工具
- D.1 包管理
- D.1.1 npm
- D.1.2 Bower
- D.1.3 JSPM
- D.1.4 Yarn
- D.2 模块加载器
- D.2.1 SystemJS
- D.2.2 RequireJS
- D.3 模块打包器
- D.3.1 Webpack
- D.3.2 JSPM
- D.3.3 Browserify
- D.3.4 Rollup
- D.4 编译/转译工具及静态类型系统
- D.4.1 Babel
- D.4.2 Google Closure Compiler
- D.4.3 CoffeeScript
- D.4.4 TypeScript
- D.4.5 Flow
- D.5 高性能脚本工具
- D.5.1 WebAssembly
- D.5.2 asm.js
- D.5.3 Emscripten与LLVM
- D.6 编辑器
- D.6.1 Sublime Text
- D.6.2 Atom
- D.6.3 Brackets
- D.6.4 Visual Studio Code
- D.6.5 WebStorm
- D.7 构建工具、自动化系统和任务运行器
- D.7.1 Grunt
- D.7.2 Gulp
- D.7.3 Brunch
- D.7.4 npm
- D.8 代码检查和格式化
- D.8.1 ESLint
- D.8.2 Google Closure Compiler
- D.8.3 JSLint
- D.8.4 JSHint
- D.8.5 ClangFormat
- D.9 压缩工具
- D.9.1 Uglify
- D.9.2 Google Closure Compiler
- D.9.3 JSMin
- D.9.4 Dojo ShrinkSafe
- D.10 单元测试
- D.10.1 Mocha
- D.10.2 Jasmine
- D.10.3 qUnit
- D.10.4 JsUnit
- D.10.5 Dojo Object Harness
- D.11 文档生成器
- D.11.1 ESDoc
- D.11.2 documentation.js
- D.11.3 Docco
- D.11.4 JsDoc Toolkit
- D.11.5 YUI Doc
- D.11.6 AjaxDoc
- 作者简介
- 看完了
展开全部
出版方
人民邮电出版社·图灵出品
图灵社区成立于2005年6月,由人民邮电出版社投资控股,以策划出版高质量的科技书籍为核心业务,主要出版领域包括计算机、电子电气、数学统计、科普等,通过引进国际高水平的教材、专著,以及发掘国内优秀原创作品等途径,为目标读者提供一流的内容。