4.7 用户推荐指数
计算机
类型
可以朗读
语音朗读
276千字
字数
2021-12-01
发行日期
展开全部
主编推荐语
本书着重于介绍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 正则表达式
展开全部
出版方
人民邮电出版社
人民邮电出版社是工业和信息化部主管的大型专业出版社,成立于1953年10月1日。人民邮电出版社坚持“立足信息产业、面向现代社会、传播科学知识、服务科教兴国”,致力于通信、计算机、电子技术、教材、少儿、经管、摄影、集邮、旅游、心理学等领域的专业图书出版。