科技
类型
可以朗读
语音朗读
643千字
字数
2019-05-01
发行日期
展开全部
主编推荐语
本书从基础到高级,主要阐释JavaScript编程各层面的语法、观念、实战示例与习题。
内容简介
本书主要内容包括:表达式与运算符,数据类型,条件和循环语句,函数与方法,处理数值、字符串、数组、自定义对象与日期和时间,DOM的事件处理和元素实例,Reflect、Proxy和Intl对象,window.navigator、window.document和BOM的多个对象实例,类,错误处理,数据的验证与传输,响应式机制与源代码加密。
本书含有充足且具有创意的实战示例,利于读者学习、理解和实际运用。另外,各章末的习题也是用来演练学习成果的良方,可起到事半功倍的奇效。
本书既适合业界的程序开发者阅读,也可作为大中专院校与培训机构的教学参考书。
目录
- 版权信息
- 内容简介
- 前言
- 第1章 ECMAScript简介
- 1.1 概述
- 1.1.1 ECMAScript各版本
- 1.1.2 关于JavaScript
- 1.1.3 其他脚本语言
- 1.2 语法的实现
- 1.2.1 源代码
- 1.2.2 语句
- 1.2.3 表达式
- 1.2.4 子程序
- 1.2.5 注释
- 1.2.6 关键字
- 1.3 开发环境
- 1.3.1 浏览器
- 1.3.2 Node.js
- 1.3.3 其他JavaScript Shell
- 1.4 练习题
- 第2章 表达式与运算符
- 2.1 操作数
- 2.1.1 常量(ES6)
- 2.1.2 变量(ES6)
- 2.1.3 子表达式
- 2.1.4 函数的返回值
- 2.2 运算符
- 2.2.1 算术运算符(ES7)
- 2.2.2 赋值运算符
- 2.2.3 比较运算符
- 2.2.4 逻辑运算符
- 2.2.5 条件运算符
- 2.2.6 类型运算符
- 2.2.7 按位运算符
- 2.2.8 括号运算符
- 2.2.9 扩展运算符(ES6)
- 2.2.10 逗号运算符
- 2.2.11 删除运算符
- 2.2.12 运算符的优先级(ES6)
- 2.3 练习题
- 第3章 数据类型
- 3.1 数值类型
- 3.1.1 2n进制的字面量(ES6)
- 3.1.2 数值的比较(ES6)
- 3.1.3 数值的正负符号(ES6)
- 3.1.4 数值的截断(ES6)
- 3.1.5 数值的特殊格式(ECMA-402)
- 3.1.6 整数值的安全范围(ES6)
- 3.2 布尔类型
- 3.3 数组类型
- 3.4 对象类型
- 3.5 字符串类型
- 3.5.1 一般字符串
- 3.5.2 格式化字符串(ES6)
- 3.5.3 日期与时间格式的字符串(ES6)
- 3.6 集合与地图类型
- 3.6.1 集合类型(ES6)
- 3.6.2 地图类型(ES6)
- 3.7 数据类型的转换(ES6)
- 3.8 练习题
- 第4章 条件和循环语句
- 4.1 条件语句
- 4.1.1 if语句
- 4.1.2 switch语句
- 4.2 循环语句
- 4.2.1 for相关语句(ES6)
- 4.2.2 while相关语句
- 4.2.3 break与continue语句
- 4.3 练习题
- 第5章 函数与方法
- 5.1 函数的定义
- 5.1.1 不同形式的函数(ES6)
- 5.1.2 函数名称(ES6)
- 5.1.3 参数(ES6)
- 5.1.4 主体
- 5.1.5 返回数据与void关键字(ES6)
- 5.1.6 定义的位置(ES6)
- 5.1.7 函数的调用形式(ES6)
- 5.2 生成器
- 5.2.1 迭代器协议与生成器(ES6)
- 5.2.2 生成器函数的定义和用法(ES6)
- 5.3 搭配Promise对象
- 5.3.1 Promise对象的用法(ES6、ES9)
- 5.3.2 聚集多个Promise对象(ES6)
- 5.3.3 异步函数与等待表达式(ES8)
- 5.4 练习题
- 第6章 处理数值
- 6.1 Number对象的内置属性
- 6.1.1 最大的正数和安全整数(ES6)
- 6.1.2 最小的正数和安全整数(ES6)
- 6.1.3 正负无穷值
- 6.1.4 非数值的判断(ES6)
- 6.1.5 浮点数运算的误差值(ES6)
- 6.2 Number对象的内置函数
- 6.2.1 转换为特定进制的数码字符串
- 6.2.2 处理小数格式
- 6.2.3 转换为数值
- 6.2.4 判断是否为整数或有限数(ES6)
- 6.3 Math对象
- 6.3.1 Math对象的常量属性
- 6.3.2 Math对象的函数(ES6)
- 6.4 练习题
- 第7章 处理字符串
- 7.1 String对象
- 7.1.1 子字符串的索引值
- 7.1.2 特定模式的子字符串的搜索(ES6)
- 7.1.3 子字符串的获取
- 7.1.4 子字符串的替换
- 7.1.5 字符串的大小写转换
- 7.1.6 不同字符串的连接
- 7.1.7 字符串的重复连接
- 7.1.8 字符串的分割
- 7.1.9 特定字符和Unicode数码的双向转换(ES6)
- 7.1.10 重复填充子字符串于扩充后的字符串中(ES8)
- 7.2 将冗长的字符串分割为多行(ES6)
- 7.3 字符串的扩展运算(ES6)
- 7.4 字符串的插值格式化(ES6)
- 7.5 原始字符串(ES6)
- 7.6 正则表达式与黏性匹配(ES6)
- 7.7 万国码字面量(ES6)
- 7.8 练习题
- 第8章 处理数组
- 8.1 Array对象
- 8.1.1 创建特定数组的副本(ES6)
- 8.1.2 创建来自可迭代对象的新数组(ES6)
- 8.1.3 数组元素数据所构成的字符串
- 8.1.4 数组元素的放入和取出
- 8.1.5 新增或删除数组的多个元素
- 8.1.6 合并多个数组
- 8.1.7 切割数组
- 8.1.8 寻找符合特定条件的数组元素(ES6)
- 8.1.9 自我复制并覆盖数组的部分元素(ES6)
- 8.1.10 判断数组各元素是否符合特定条件
- 8.1.11 数组部分元素的填充(ES6)
- 8.1.12 筛选出符合特定条件的数组元素(ES6)
- 8.1.13 循环访问数组各元素
- 8.1.14 判断是否为数组的实例
- 8.1.15 访问并渐次处理数组各元素的数据
- 8.1.16 反转数组各元素的顺序
- 8.1.17 数组各元素的重新排序
- 8.1.18 判断特定元素的存在性(ES7)
- 8.2 数组的扩展运算(ES6)
- 8.3 数组元素的匹配(ES6)
- 8.4 数据类型化的按位数组(ES6)
- 8.5 练习题
- 第9章 处理自定义对象
- 9.1 自定义对象的属性名称、属性数据与副本
- 9.1.1 对象属性的名称或数据所构成的数组(ES8)
- 9.1.2 精细创建特定对象实例的副本
- 9.2 自定义对象实例之间的相同性与合并
- 9.2.1 判断两个对象实例的数据是否完全相同(ES6)
- 9.2.2 合并多个对象实例的所有成员(ES6)
- 9.3 对象实例的简短自定义语法(ES6)
- 9.4 自定义对象实例的动态成员名称(ES6)
- 9.5 对象实例的匹配(ES9)
- 9.6 练习题
- 第10章 处理日期和时间
- 10.1 处理日期
- 10.1.1 获取日期相关数据
- 10.1.2 设置日期相关数据
- 10.1.3 带有日期的格式化字符串
- 10.2 处理时间
- 10.2.1 获取时间相关数据
- 10.2.2 设置时间相关数据
- 10.2.3 带有时间的格式化字符串
- 10.2.4 处理纪元时间至今的毫秒数(ES6)
- 10.3 练习题
- 第11章 DOM的事件处理(一)
- 11.1 鼠标事件
- 11.1.1 单击和双击事件
- 11.1.2 上下文菜单事件
- 11.1.3 鼠标按下与松开事件
- 11.1.4 鼠标指针相关进出事件
- 11.1.5 鼠标移动事件
- 11.2 键盘事件
- 11.2.1 按压与按下按键事件
- 11.2.2 松开按键事件
- 11.3 网页内容的装卸事件
- 11.3.1 出现错误事件
- 11.3.2 加载和页面显示事件
- 11.3.3 卸载和页面隐藏事件
- 11.3.4 先于卸载事件
- 11.3.5 网址散列变化事件
- 11.3.6 滚动事件
- 11.4 表单事件
- 11.4.1 内容变化事件
- 11.4.2 获取和失去焦点相关事件
- 11.4.3 输入事件
- 11.4.4 无效事件
- 11.4.5 重置事件
- 11.4.6 搜索事件
- 11.4.7 选定文本事件
- 11.4.8 提交事件
- 11.5 练习题
- 第12章 DOM的事件处理(二)
- 12.1 拖动事件
- 12.1.1 正在拖动事件
- 12.1.2 拖动结束事件
- 12.1.3 拖动进入事件
- 12.1.4 拖动离开事件
- 12.1.5 拖动悬停事件
- 12.1.6 拖动开始事件
- 12.1.7 放下事件
- 12.2 剪贴板事件
- 12.2.1 复制事件
- 12.2.2 剪切事件
- 12.2.3 粘贴事件
- 12.3 视频和音频事件
- 12.3.1 加载相关事件
- 12.3.2 清空事件
- 12.3.3 播放结束事件
- 12.3.4 异常相关事件
- 12.3.5 播放与暂停相关事件
- 12.3.6 播放速率变化事件
- 12.3.7 播放位置变化相关事件
- 12.3.8 音量变化事件
- 12.3.9 缓冲等待事件
- 12.4 动画及过渡事件
- 12.4.1 动画相关事件
- 12.4.2 过渡结束事件
- 12.5 其他事件
- 12.5.1 details元素实例的切换事件
- 12.5.2 鼠标滚轮事件
- 12.5.3 触摸相关事件
- 12.5.4 接收服务器数据相关事件
- 12.6 练习题
- 第13章 Reflect对象
- 13.1 Reflect对象介绍(ES6)
- 13.2 间接应用特定函数(ES6)
- 13.3 创建特定对象的实例(ES6)
- 13.4 精细定义新属性(ES6)
- 13.5 删除特定属性(ES6)
- 13.6 获取特定属性的数据(ES6)
- 13.7 返回特定属性的描述器(ES8)
- 13.8 返回特定对象的原型(ES6)
- 13.9 判断特定属性的存在性(ES6)
- 13.10 判断与设置特定对象的扩展性(ES6)
- 13.11 简易定义新属性(ES6)
- 13.12 重新设置特定对象的原型(ES6)
- 13.13 返回与列举特定对象的自定义属性(ES6)
- 13.14 练习题
- 第14章 Proxy对象、Intl对象和navigator对象实例
- 14.1 Proxy对象
- 14.1.1 创建访问代理机制的构造函数(ES6)
- 14.1.2 确定被代理的特定对象(ES6)
- 14.1.3 自定义代理函数(ES6)
- 14.1.4 调试访问代理机制(ES6)
- 14.2 Intl对象
- 14.2.1 精确比较语言敏感的字符串(ECMA-402)
- 14.2.2 语言敏感的日期与时间格式(ECMA-402)
- 14.2.3 语言敏感的数值格式(ECMA-402)
- 14.2.4 返回规范化语言环境名称(ECMA-402)
- 14.3 window.navigator对象实例
- 14.3.1 获取浏览器相关信息
- 14.3.2 获取当前地理定位相关数据
- 14.4 练习题
- 第15章 window.document对象实例
- 15.1 返回焦点所在的元素
- 15.2 附加事件处理器至特定元素
- 15.3 收养特定节点
- 15.4 返回所有锚点元素构成的集合
- 15.5 返回当前网址的相关属性
- 15.6 在当前网页中动态生成HTML源代码
- 15.7 内含特定服务器相关数据的cookie
- 15.8 返回当前网页编码字符集的名称
- 15.9 创建代表新属性的节点
- 15.10 创建代表新注释的节点
- 15.11 创建代表新片段或新元素的节点
- 15.12 创建代表新文本的节点
- 15.13 返回当前网页的根元素
- 15.14 访问当前网址的域名
- 15.15 返回所有embed元素构成的集合
- 15.16 返回所有form元素实例构成的集合
- 15.17 返回特定身份识别码的元素实例
- 15.18 返回被设置带有特定CSS类名的所有元素实例的集合
- 15.19 返回特定标签名称的所有元素实例的集合
- 15.20 判断当前网页是否存在焦点
- 15.21 返回当前网页的head元素实例
- 15.22 返回当前网页所有image元素实例的集合
- 15.23 创建当前网页或者子网页里的特定节点实例的副本
- 15.24 获取当前网页的最近被修改的日期和时间
- 15.25 返回当前网页中的所有超链接元素实例的集合
- 15.26 返回特定CSS选择器名称对应的元素实例或集合
- 15.27 返回和处置当前网页的加载状态
- 15.28 返回跳转前的网址
- 15.29 解除已被附加的事件处理器
- 15.30 返回当前网页中的所有script元素实例构成的集合
- 15.31 访问当前网页的标题文本
- 15.32 练习题
- 第16章 DOM的元素实例
- 16.1 设置焦点跳转至特定元素实例上的快捷键
- 16.2 创建特定元素实例的动画效果(Web Animations)
- 16.3 添加新元素实例和访问特定元素实例的所有属性
- 16.4 使得特定元素实例失去和获取焦点
- 16.5 访问子节点或子元素的实例
- 16.6 访问被应用在特定元素实例的所有CSS类名
- 16.7 模拟鼠标单击特定元素实例的动作
- 16.8 获取特定元素的尺寸、坐标与可定位的上层元素
- 16.9 比较两个元素之间的位置关系
- 16.10 判断是否存在特定子元素或可被编辑
- 16.11 访问特定元素实例的文本被书写的方向
- 16.12 返回头尾的子节点实例或子元素实例
- 16.13 访问或删除特定元素实例的特定属性
- 16.14 访问特定元素实例的常见属性的数据
- 16.15 判断是否存在任何子节点实例
- 16.16 在特定子节点实例之前新增另一子节点实例
- 16.17 判断两个节点实例的内容是否完全相同
- 16.18 返回下一个或上一个兄弟节点实例
- 16.19 返回特定节点实例的相关数据
- 16.20 合并多个相邻的文本子节点实例
- 16.21 返回父节点实例
- 16.22 删除或替换子节点实例
- 16.23 获取滚动条的相关数据
- 16.24 练习题
- 第17章 BOM的多个对象实例
- 17.1 window对象实例
- 17.1.1 显示多种对话框与搜索特定文本
- 17.1.2 滚动至坐标或滚动特定距离
- 17.2 screen对象实例
- 17.3 history对象实例
- 17.4 location对象实例
- 17.5 练习题
- 第18章 类
- 18.1 类的定义和继承
- 18.1.1 类的定义(ES6)
- 18.1.2 类的继承(ES6)
- 18.2 类的静态成员
- 18.2.1 静态成员的概念和定义(ES6)
- 18.2.2 静态成员的运用(ES6)
- 18.3 类的设置器和取得器
- 18.3.1 设置器和取得器的概念和定义(ES6)
- 18.3.2 设置器和取得器的运用(ES6)
- 18.4 练习题
- 第19章 错误处理
- 19.1 异常错误的种类
- 19.1.1 语法错误
- 19.1.2 数据类型错误
- 19.1.3 评估错误
- 19.1.4 范围错误
- 19.1.5 引用错误
- 19.1.6 网址在编码或解码上的错误
- 19.1.7 逻辑错误
- 19.2 处置特定异常错误
- 19.2.1 试验与捕获特定异常错误
- 19.2.2 抛出自定义的异常错误
- 19.3 调试机制
- 19.3.1 严格模式
- 19.3.2 源代码的断点设置和逐句执行
- 19.4 练习题
- 第20章 数据的验证与传输
- 20.1 HTML表单的内置验证
- 20.1.1 必填验证
- 20.1.2 字符个数和数值范围的验证
- 20.2 自定义的验证
- 20.2.1 文本字段的模式验证
- 20.2.2 JavaScript源代码实现的验证
- 20.3 异步数据传输
- 20.3.1 AJAX的工作原理
- 20.3.2 AJAX的编程方式
- 20.4 练习题
- 第21章 响应式机制
- 21.1 通过CSS语法的版本
- 21.1.1 页面的元信息
- 21.1.2 媒体查询
- 21.2 通过JavaScript语法的版本
- 21.2.1 简易判断窗口尺寸的版本
- 21.2.2 直接变更CSS规则的版本
- 21.3 源代码的加密
- 21.3.1 改写HTML与CSS成为JavaScript源代码
- 21.3.2 JavaScript源代码的全数加密
- 21.4 练习题
- 附录 练习题答案
展开全部
出版方
清华大学出版社
清华大学出版社成立于1980年6月,是由教育部主管、清华大学主办的综合出版单位。植根于“清华”这座久负盛名的高等学府,秉承清华人“自强不息,厚德载物”的人文精神,清华大学出版社在短短二十多年的时间里,迅速成长起来。清华大学出版社始终坚持弘扬科技文化产业、服务科教兴国战略的出版方向,把出版高等学校教学用书和科技图书作为主要任务,并为促进学术交流、繁荣出版事业设立了多项出版基金,逐渐形成了以出版高水平的教材和学术专著为主的鲜明特色,在教育出版领域树立了强势品牌。