类似推荐
编辑推荐
本书着重于介绍JavaScript在面向对象方面的特性,为你展示如何构建强健的、可维护的、功能强大的应用程序及程序库。
内容简介
全书包括13章和5个附录。依次介绍了JavaScript的发展历史、基础知识(变量、数据类型、数组、循环以及条件表达式等)、函数、对象、迭代器和生成器、原型、继承的实现、类与模块、Promise与Proxy、浏览器环境、编程模式与设计模式、测试与调试和响应式编程等。
本书全面地覆盖了JavaScript语言的特性,同时兼顾基础知识,对初学者来说,是难得的JavaScript佳作。
读者不需要具备任何的JavaScript基础知识及项目经验,本书适用于任何希望学习JavaScript的编程初学者,也可以作为有JavaScript经验的读者的参考。
作者简介
作者韦德·安塔尼,印度知名时尚电商Myntra的副总裁助理,曾就职于Electronic Arts、NetApp和Oracle。从2005年起一直在从事JavaScript、Go和Java编程,在构建可伸缩系统和移动应用开发方面有着丰富的经验。
章节目录
版权信息
版权声明
内容提要
作者简介
审阅者简介
前言
资源与支持
第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 正则表达式
JavaScript面向对象编程指南(第3版)是2021年由人民邮电出版社出版,作者[印] 韦德·安塔尼。
得书感谢您对《JavaScript面向对象编程指南(第3版)》关注和支持,如本书内容有不良信息或侵权等情形的,请联系本网站。