展开全部

主编推荐语

本书着重于介绍JavaScript在面向对象方面的特性,为你展示如何构建强健的、可维护的、功能强大的应用程序及程序库。

内容简介

全书包括13章和5个附录。依次介绍了JavaScript的发展历史、基础知识(变量、数据类型、数组、循环以及条件表达式等)、函数、对象、迭代器和生成器、原型、继承的实现、类与模块、Promise与Proxy、浏览器环境、编程模式与设计模式、测试与调试和响应式编程等。

本书全面地覆盖了JavaScript语言的特性,同时兼顾基础知识,对初学者来说,是难得的JavaScript佳作。

读者不需要具备任何的JavaScript基础知识及项目经验,本书适用于任何希望学习JavaScript的编程初学者,也可以作为有JavaScript经验的读者的参考。

目录

  • 版权信息
  • 版权声明
  • 内容提要
  • 作者简介
  • 审阅者简介
  • 前言
  • 资源与支持
  • 第1章 JavaScript面向对象
  • 1.1 回顾历史
  • 1.1.1 浏览器之争
  • 1.1.2 了解现状
  • 1.1.3 展望未来
  • 1.2 ECMAScript 5
  • ES6中的严格模式
  • 1.3 ECMAScript 6
  • 1.3.1 ES6的浏览器支持情况
  • 1.3.2 Babel
  • 1.4 面向对象编程
  • 1.4.1 对象
  • 1.4.2 类
  • 1.4.3 封装
  • 1.4.4 聚合
  • 1.4.5 继承
  • 1.4.6 多态
  • 1.5 OOP小结
  • 1.6 配置练习环境
  • 1.6.1 WebKit开发者工具
  • 1.6.2 Mac上的JavaScriptCore
  • 1.6.3 其他控制台
  • 1.7 小结
  • 第2章 基本数据类型、数组、循环及条件表达式
  • 2.1 变量
  • 区分大小写
  • 2.2 操作符
  • 2.3 基本数据类型
  • 2.3.1 查看类型操作符——typeof
  • 2.3.2 数字
  • 2.3.3 字符串
  • 2.3.4 布尔值
  • 2.3.5 undefined与null
  • 2.3.6 Symbol
  • 2.4 基本数据类型综述
  • 2.5 数组
  • 2.5.1 增加、更新数组元素
  • 2.5.2 删除元素
  • 2.5.3 数组的数组
  • 2.6 条件与循环
  • 2.6.1 代码块
  • 2.6.2 循环
  • 2.7 注释
  • 2.8 练习题
  • 2.9 小结
  • 第3章 函数
  • 3.1 什么是函数
  • 3.1.1 调用函数
  • 3.1.2 参数
  • 3.2 默认参数
  • 3.3 剩余参数
  • 3.4 展开操作符
  • 预定义函数
  • 3.5 变量的作用域
  • 变量提升
  • 3.6 块作用域
  • 3.7 函数也是数据
  • 3.7.1 匿名函数
  • 3.7.2 回调函数
  • 3.7.3 即时函数
  • 3.7.4 内部(私有)函数
  • 3.7.5 返回函数的函数
  • 3.7.6 能重写自己的函数
  • 3.8 闭包
  • 3.8.1 作用域链
  • 3.8.2 利用闭包突破作用域链
  • 3.8.3 循环中的闭包
  • 3.8.4 getter与setter
  • 3.8.5 迭代器
  • 3.9 IIFE与作用域
  • 3.10 箭头函数
  • 3.11 练习题
  • 3.12 小结
  • 第4章 对象
  • 4.1 从数组到对象
  • 4.1.1 元素、属性、方法与成员
  • 4.1.2 哈希表和关联型数组
  • 4.1.3 访问对象属性
  • 4.1.4 调用对象方法
  • 4.1.5 修改属性与方法
  • 4.1.6 使用this值
  • 4.1.7 构造器函数
  • 4.1.8 全局对象
  • 4.1.9 构造器属性
  • 4.1.10 instanceof操作符
  • 4.1.11 返回对象的函数
  • 4.1.12 传递对象
  • 4.1.13 比较对象
  • 4.1.14 Webkit控制台中的对象
  • 4.1.15 ES6对象语法
  • 4.2 对象属性与类型
  • 4.3 ES6对象方法
  • 4.3.1 使用Object.assign复制对象属性
  • 4.3.2 使用Object.is方法进行比较
  • 4.4 解构赋值
  • 4.5 内建对象
  • 4.5.1 Object
  • 4.5.2 Array()
  • 4.6 ES6中的数组方法
  • 4.6.1 Array.from
  • 4.6.2 使用Array.of创建数组
  • 4.6.3 Array.prototype方法
  • 4.6.4 函数
  • 4.7 箭头函数中的this
  • 4.7.1 推断对象类型
  • 4.7.2 Boolean
  • 4.7.3 Number
  • 4.7.4 String
  • 4.7.5 Math
  • 4.7.6 Date
  • 4.7.7 RegExp
  • 4.8 练习题
  • 4.9 小结
  • 第5章 ES6中的迭代器和生成器
  • 5.1 for...of循环结构
  • 5.2 迭代器与可迭代对象
  • 5.2.1 迭代器
  • 5.2.2 可迭代对象
  • 5.3 生成器
  • 5.4 集合
  • 5.4.1 Map
  • 5.4.2 Set
  • 5.4.3 WeakMap和WeakSet
  • 5.5 小结
  • 第6章 原型
  • 6.1 原型属性
  • 利用原型添加方法与属性
  • 6.2 使用原型的方法与属性
  • 6.2.1 自身属性与原型属性
  • 6.2.2 利用自身属性覆写原型属性
  • 6.2.3 isPrototypeOf()方法
  • 6.2.4 秘密的proto链接
  • 6.3 扩展内建对象
  • 6.3.1 关于扩展内建对象的讨论
  • 6.3.2 原型陷阱
  • 6.4 练习题
  • 6.5 小结
  • 第7章 继承
  • 7.1 原型链
  • 7.1.1 原型链示例
  • 7.1.2 将共享属性迁移到原型中去
  • 7.2 只继承于原型
  • 临时构造器——new F()
  • 7.3 uber——子对象访问父对象的方式
  • 7.4 将继承部分封装成函数
  • 7.5 属性复制
  • 7.6 小心处理引用复制
  • 7.7 对象之间的继承
  • 7.8 深复制
  • 7.9 object()
  • 7.10 原型继承与属性复制的混合应用
  • 7.11 多重继承
  • 混合插入
  • 7.12 寄生式继承
  • 7.13 构造器借用
  • 借用构造器与原型复制
  • 7.14 案例学习:图形绘制
  • 7.14.1 分析
  • 7.14.2 实现
  • 7.14.3 测试
  • 7.15 练习题
  • 7.16 小结
  • 第8章 类与模块
  • 8.1 定义类
  • 8.1.1 构造器
  • 8.1.2 原型方法
  • 8.1.3 静态方法
  • 8.1.4 静态属性
  • 8.1.5 生成器方法
  • 8.2 子类化
  • mixin
  • 8.3 模块
  • 导出列表
  • 8.4 小结
  • 第9章 Promise与Proxy
  • 9.1 异步编程模型
  • 9.2 JavaScript调用栈
  • 9.2.1 消息队列
  • 9.2.2 事件循环
  • 9.2.3 计时器
  • 9.3 Promise
  • 9.3.1 创建Promise
  • 9.3.2 元编程与Proxy
  • 9.3.3 Proxy
  • 9.3.4 函数拦截
  • 9.4 小结
  • 第10章 浏览器环境
  • 10.1 在HTML页面中引入JavaScript代码
  • 10.2 BOM与DOM概览
  • 10.3 BOM
  • 10.3.1 window对象再探
  • 10.3.2 window.navigator属性
  • 10.3.3 控制台的备忘功能
  • 10.3.4 window.location属性
  • 10.3.5 window.history属性
  • 10.3.6 window.frames属性
  • 10.3.7 window.screen属性
  • 10.3.8 window.open()/close()方法
  • 10.3.9 window.moveTo()方法和window.resizeTo()方法
  • 10.3.10 window.alert()、window.prompt()和window.confirm()方法
  • 10.3.11 window.setTimeout()和window.setInterval()方法
  • 10.3.12 window.document属性
  • 10.4 DOM
  • 10.4.1 Core DOM与HTML DOM
  • 10.4.2 DOM节点的访问
  • 10.4.3 DOM节点的修改
  • 10.4.4 新建节点
  • 10.4.5 移除节点
  • 10.4.6 只适用于HTML的DOM对象
  • 10.5 事件
  • 10.5.1 内联HTML属性法
  • 10.5.2 元素属性法
  • 10.5.3 DOM的事件监听器
  • 10.5.4 捕获法与冒泡法
  • 10.5.5 阻断传播
  • 10.5.6 防止默认行为
  • 10.5.7 跨浏览器的事件监听器
  • 10.5.8 事件类型
  • 10.6 XMLHttpRequest对象
  • 10.6.1 发送请求
  • 10.6.2 处理响应
  • 10.6.3 在早于IE7的版本中创建XMLHttpRequest对象
  • 10.6.4 A代表异步
  • 10.6.5 X代表XML
  • 10.6.6 示例
  • 10.7 练习题
  • 10.8 小结
  • 第11章 编程模式与设计模式
  • 11.1 编程模式
  • 11.1.1 行为隔离
  • 11.1.2 命名空间
  • 11.1.3 初始化时分支
  • 11.1.4 惰性初始
  • 11.1.5 配置对象
  • 11.1.6 私有属性和方法
  • 11.1.7 特权方法
  • 11.1.8 私有函数的公有化
  • 11.1.9 即时函数
  • 11.1.10 模块
  • 11.1.11 链式调用
  • 11.1.12 JSON
  • 11.1.13 高阶函数
  • 11.2 设计模式
  • 11.2.1 单例模式1
  • 11.2.2 单例模式2
  • 11.2.3 工厂模式
  • 11.2.4 装饰器模式
  • 11.2.5 装饰一棵圣诞树
  • 11.3 观察者模式
  • 11.4 小结
  • 第12章 测试与调试
  • 12.1 单元测试
  • 12.1.1 测试驱动开发
  • 12.1.2 行为驱动测试
  • 12.1.3 mocha、chai以及sinon
  • 12.2 调试JavaScript
  • 12.2.1 语法错误
  • 12.2.2 运行时异常
  • 12.3 小结
  • 第13章 响应式编程与React
  • 13.1 响应式编程
  • 为什么要使用响应式编程
  • 13.2 React
  • 13.3 虚拟DOM
  • 13.4 React的安装及运行
  • 13.4.1 组件与props
  • 13.4.2 state
  • 13.4.3 生命周期函数
  • 13.5 小结
  • 附录A 保留字
  • A.1 当前的保留字
  • A.2 ES6预备保留字
  • 未来的保留字
  • A.3 废除的保留字
  • 附录B 内建函数
  • 附录C 内建对象
  • C.1 Object
  • C.1.1 Object构造器的成员
  • C.1.2 Object.prototype的成员
  • C.1.3 在ECMAScript 5中附加的Object属性
  • C.2 在ES6中附加的Object属性
  • C.2.1 属性缩写
  • C.2.2 计算属性
  • C.2.3 Object.assign
  • C.3 Array
  • C.3.1 Array.prototype的成员
  • C.3.2 在ECMAScript 5中附加的Array属性
  • C.3.3 在ES6中附加的Array属性
  • C.4 Function
  • C.4.1 Function.prototype的成员
  • C.4.2 ECMAScript 5 对Function的附加支持
  • C.4.3 ES6对Function的附加支持
  • C.5 Boolean
  • C.6 Number
  • C.6.1 Number构造器的成员
  • C.6.2 Number.prototype的成员
  • C.7 String
  • C.7.1 String构造器的成员
  • C.7.2 String.prototype的成员
  • C.7.3 ECMAScript 5对String的附加支持
  • C.7.4 ES6对String的附加支持
  • C.8 Date
  • C.8.1 Date构造器的成员
  • C.8.2 Date.prototype的成员
  • C.8.3 ECMAScript 5对Date的附加支持
  • C.9 Math
  • Math对象的成员
  • C.10 RegExp
  • RegExp.prototype对象的成员
  • C.11 Error对象
  • Error.prototype的成员
  • C.12 JSON对象
  • JSON对象的成员
  • 附录D 正则表达式
展开全部

评分及书评

4.7
3个评分
  • 用户头像
    给这本书评了
    5.0
    又是一本不错的JavaScript书籍

    最近看了什么书还是听了什么课程说,学习一门知识,先通读几本这个领域的书,再选定方向深入去学习。对了,想起来了,是《精进》,就不记得是 1、2、3 哪一本了。前一本看的《JavaScript 权威指南》,挺专业就是稍微绕口不好读,技术也有点老。这一本书就挺不错的,包含了最新的 ES6 等技术,每项技术也说的比较清晰易懂,关键是书的排版要好很多,读起来就不那么吃力。这本书最大的作用呢就是扫清了我关于 JavaScript 一些似懂非懂的知识点,让我知道看到代码知道是什么东西,应该去搜索什么关键词,下次有问题去哪里找就。这本书挺适合收藏一本。不管是纸质书还是电子书。

      转发
      1

    出版方

    人民邮电出版社

    人民邮电出版社是工业和信息化部主管的大型专业出版社,成立于1953年10月1日。人民邮电出版社坚持“立足信息产业、面向现代社会、传播科学知识、服务科教兴国”,致力于通信、计算机、电子技术、教材、少儿、经管、摄影、集邮、旅游、心理学等领域的专业图书出版。