JavaScript 编程全解 PDF 文档
本书涵盖了 JavaScript 开发中各个方面的主题,对从客户端及服务器端 JavaScript 等基础内容,到HTML5、Web API、Node.js 与 WebSocket 等热门技术,都作了深入浅出的介绍与说明。读者能够通过本书了解当今 JavaScript 开发的最新现状。本书的一大特色是对 JavaScript 语言的语法规则进行了细致的说明,并通过大量纯正的 JavaScript 风格代码,帮助读者准确地掌握 JavaScript 的语言特性及细节用法。
本书适合 JavaScript 开发初学者系统入门、有经验的 JavaScript 开发者深入理解语言本质,也适合开发团队负责人、项目负责人作为综合性的 JavaScript 参考书阅读。
这是一本关于 JavaScript 程序设计语言的书。本书的前半部分将对 JavaScript 的语言基础进行解说,而后半部分主要介绍包括客户端 JavaScript、HTML5、Web API 以及服务器 JavaScript 等与JavaScript 相关的应用领域。
本书面向有一定编程基础的开发者,因此书中的 JavaScript 代码都只取了片段。希望通过复制粘贴来使用这些代码的读者,在阅读本书时或许会感到有些困难。此外,本书中没有涉及网页设计和用户体验的内容,如果只是希望学习和网页显示效果有关的 JavaScript 知识,阅读本书并不合适。
本书的目标读者是希望深入学习 JavaScript 并开发完整的 Web 应用程序的人。那些平时主要使用 Java 或是 PHP 等其他语言的开发者,有时也会遇到一些不得不使用 JavaScript 语言的情况。对于这些开发者来说,如果你抱有既然要使用 JavaScript,就应该学习正确的语言规范以写出良好代码的想法,也推荐你阅读本书。
目录
第 1 部分 JavaScript 概要
第 1 章 JavaScript 概要
1.1 JavaScript 概要
1.2 JavaScript 的历史
1.3 ECMAScript
1.3.1 JavaScript 的标准化
1.3.2 被放弃的 ECMAScript 第 4 版
1.4 JavaScript 的版本
1.5 JavaScript 实现方式
1.6 JavaScript 运行环境
1.6.1 核心语言
1.6.2 宿主对象
1.7 JavaScript 相关环境
1.7.1 库
1.7.2 源代码压缩
1.7.3 集成开发环境
第 2 部分 JavaScript 的语言基础
第 2 章 JavaScript 基础
2.1 .JavaScript 的特点
2.2 关于编排格式
2.3 变量的基础
2.3.1 变量的使用方法
2.3.2 省略 var
2.3.3 常量
2.4 函数基础
2.4.1 函数的定义
2.4.2 函数的声明与调用
2.4.3 匿名函数
2.4.4 函数是一种对象
2.5 对象的基础
2.5.1 对象的定义
2.5.2 对象字面量表达式与对象的使用
2.5.3 属性访问
2.5.4 属性访问(括号方式)
2.5.5 方法
2.5.6 new 表达式
2.5.7 类与实例
2.5.8 对类的功能的整理
2.5.9 对象与类型
2.6 数组的基础
第 3 章 JavaScript 的数据类型
3.1 数据类型的定义
3.1.1 在数据类型方面与 Java 作比较
3.1.2 基本数据类型和引用类型
3.2 内建数据类型概要
3.3 字符串型
3.3.1 字符串字面量
3.3.2 字符串型的运算
3.3.3 字符串型的比较
3.3.4 字符串类(String 类)
3.3.5 字符串对象
3.3.6 避免混用字符串值和字符串对象
3.3.7 调用 String 函数
3.3.8 String 类的功能
3.3.9 非破坏性的方法
3.4 数值型
3.4.1 数值字面量
3.4.2 数值型的运算
3.4.3 有关浮点数的常见注意事项
3.4.4 数值类(Number 类)
3.4.5 调用 Number 函数
3.4.6 Number 类的功能
3.4.7 边界值与特殊数值
3.4.8 NaN
3.5 布尔型
3.5.1 布尔值
3.5.2 布尔类(Boolean 类)
3.5.3 Boolean 类的功能
3.6 null 型
3.7 undefined 型
3.8 Object 类型
3.9 数据类型转换
3.9.1 从字符串值转换为数值
3.9.2 从数值转换为字符串值
3.9.3 数据类型转换的惯用方法
3.9.4 转换为布尔型
3.9.5 其他的数据类型转换
3.9.6 从 Object 类型转换为基本数据类型
3.9.7 从基本数据类型转换为 Object 类型
第 4 章 语句、表达式和运算符
4.1 表达式和语句的构成
4.2 保留字
4.3 标识符
4.4 字面量
4.5 语句
4.6 代码块(复合语句)
4.7 变量声明语句
4.8 函数声明语句
4.9 表达式语句
4.10 空语句
4.11 控制语句
4.12 if-else 语句
4.13 switch-case 语句
4.14 循环语句
4.15 while 语句
4.16 do-while 语句
4.17 for 语句
4.18 for.in 语句
4.18.1 数列与 for in 语句
4.18.2 在使用 for in 语句时需要注意的地方
4.19 for.each.in.语句
4.20 break 语句
4.21 continue 语句
4.22 通过标签跳转
4.23 return 语句
4.24 异常
4.25 其他
4.26 注释
4.27 表达式
4.28 运算符
4.29 表达式求值
4.30 运算符的优先级以及结合律
4.31 算术运算符
4.32 字符串连接运算符
4.33 相等运算符
4.34 比较运算符
4.35 in 运算符
4.36 instanceof 运算符
4.37 逻辑运算符
4.38 位运算符
4.39 赋值运算符
4.40 算术赋值运算符
4.41 条件运算符(三目运算符)
4.42 typeof 运算符
4.43 new 运算符
4.44 delete 运算符
4.45 void 运算符
4.46 逗号(,)运算符
4.47 点运算符和中括号运算符
4.48 函数调用运算符
4.49 运算符使用以及数据类型转换中需要注意的地方
第 5 章 变量与对象
5.1 变量的声明
5.2 变量与引用
5.2.1 函数的参数(值的传递)
5.2.2 字符串与引用
5.2.3 对象与引用相关的术语总结
5.3 变量与属性
5.4 变量的查找
5.5 对变量是否存在的检验
5.6 对象的定义
5.6.1 抽象数据类型与面向对象
5.6.2 实例间的协作关系与面向对象
5.6.3 JavaScript 的对象
5.7 对象的生成
5.7.1 对象字面量
5.7.2 构造函数与 new 表达式
5.7.3 构造函数与类的定义
5.8 属性的访问
5.8.1 属性值的更新
5.8.2 点运算符与中括号运算符在使用上的区别
5.8.3 属性的枚举
5.9 作为关联数组的对象
5.9.1 关联数组
5.9.2 作为关联数组的对象的注意点
5.10 属性的属性
5.11 垃圾回收
5.12 不可变对象
5.12.1 不可变对象的定义
5.12.2 不可变对象的作用
5.12.3 实现不可变对象的方式
5.13 方法
5.14 this 引用
5.14.1 this 引用的规则
5.14.2 this 引用的注意点
5.15 apply 与 call
5.16 原型继承
5.16.1 原型链
5.16.2 原型链的具体示例
5.16.3 原型继承与类
5.16.4 对于原型链的常见误解以及_proto_属性
5.16.5 原型对象
5.16.6 ECMAScript 第 5 版与原型对象
5.17 对象与数据类型
5.17.1 数据类型判定(constructor 属性)
5.17.2 constructor 属性的注意点
5.17.3 数据类型判定(instance 运算与 isPrototypeOf 方法
5.17.4 数据类型判定(鸭子类型)
5.17.5 属性的枚举(原型继承的相关问题)
5.18 ECMAScript 第 5 版中的 Object 类
5.18.1 属性对象
5.18.2 访问器的属性
5.19 标准对象
5.20 Object 类
5.21 全局对象
5.21.1 全局对象与全局变量
5.21.2 Math 对象
5.21.3 Error 对象
第 6 章 函数与闭包
6.1 函数声明语句与匿名函数表达式
6.2 函数调用的分类
6.3 参数与局部变量
6.3.1 arguments 对象
6.3.2 递归函数
6.4 作用域
6.4.1 浏览器与作用域
6.4.2 块级作用域
6.4.3 let 与块级作用域
6.4.4 嵌套函数与作用域
6.4.5 变量隐藏
6.5 函数是一种对象
6.6 Function 类
6.7 嵌套函数声明与闭包
6.7.1 对闭包的初步认识
6.7.2 闭包的原理
6.7.3 闭包中需要注意的地方
6.7.4 防范命名空间的污染
6.7.5 闭包与类
6.8 回调函数设计模式
6.8.1 回调函数与控制反转
6.8.2 JavaScript 与回调函数
第 7 章 数据处理
7.1 数组
7.1.1 JavaScript 的数组
7.1.2 数组元素的访问
7.1.3 数组的长度
7.1.4 数组元素的枚举
7.1.5 多维数组
7.1.6 数组是一种对象
7.1.7 Array 类
7.1.8 数组对象的意义
7.1.9 数组的习惯用法
7.1.10 数组的内部实现
7.1.11 数组风格的对象
7.1.12 迭代器
7.1.13 生成器
7.1.14 数组的内包
7.2 JSON
7.2.1 JSON 字符串
7.2.2 JSON 对象
7.3 日期处理
7.4 正则表达式
7.4.1 正则表达式的定义
7.4.2 正则表达式相关的术语
7.4.3 正则表达式的语法
7.4.4 JavaScript 中的正则表达式
7.4.5 正则表达式程序设计
7.4.6 字符串对象与正则表达式对象
第 3 部分 客户端 JavaScript
第 8 章 客户端 JavaScript 与 HTML
8.1 客户端 JavaScript 的重要性
8.1.1 Web 应用程序的发展
8.1.2 JavaScript 的性能提升
8.1.3 JavaScript 的作用
8.2 HTML 与 JavaScript
8.2.1 网页显示过程中的处理流程
8.2.2 JavaScript 的表述方式及其执行流程
8.2.3 执行流程的小结
8.3 运行环境与开发环境
8.3.1 运行环境
8.3.2 开发环境
8.4 调试
8.4.1 alert
8.4.2 console
8.4.3 onerror
8.4.4 Firebug, Web Inspector (Developer
8.5 跨浏览器支持
8.5.1 应当提供支持的浏览器
8.5.2 实现方法
8.6 Window 对象
8.6.1 Navigator 对象
8.6.2 Location 对象
8.6.3 History 对象
8.6.4 Screen 对象
8.6.5 对 Window 对象的引用
8.6.6 Document 对象
第9章 DOM
9.1 DOM 的定义
9.1.1 DOM Level 1
9.1.2 DOM Level 2
9.1.3 DOM Level 3
9.1.4 DOM 的表述方式
9.2 DOM 的基础
9.2.1 标签、元素、节点
9.2.2 DOM 操作
9.2.3 Document 对象
9.3 节点的选择
9.3.1 通过 ID 检索
9.3.2 通过标签名检索
9.3.3 通过名称检索
9.3.4 通过类名检索
9.3.5 父节点、子节点、兄弟节点
9.3.6 XPath
9.3.7 Selector API
9.4 节点的创建与新增
9.5 节点的内容更改
9.6 节点的删除
9.7 innerHTML/textContent
9.7.1 innerHTML
9.7.2 textContent
9.8 DOM 操作的性能
第 10 章 事件
10.1 事件驱动程序设计
10.2 事件处理程序/事件侦听器的设定
10.2.1 指定为 HTML 元素的属性
10.2.2 指定为 DOM 元素的属性
10.2.3 通过 EventTarget.addEventListener()进行
10.2.4 事件处理程序/事件侦听器内的 this 引用
10.3 事件的触发
10.4 事件的传播
10.4.1 捕获阶段
10.4.2 目标阶段
10.4.3 事件冒泡阶段
10.4.4 取消
10.5 事件所具有的元素
10.6 标准事件
10.6.1 DOM Level 2 中所定义的事件
10.6.2 DOM Level 3 中所定义的事件
10.7 自定义事件
第 11 章 客户端 JavaScript 实践
11.1 样式
11.1.1 样式的变更方法
11.1.2 位置的设定
11.1.3 位置
11.1.4 动画
11.2 AJAX
11.2.1 异步处理的优点
11.2.2 XMLHttpRequest
11.2.3 基本的处理流程
11.2.4 同步通信
11.2.5 超时
11.2.6 响应
11.2.7 跨源限制
11.2.8 跨源通信
11.2.9 JSONP
11.2.10 iframe 攻击(iframe hack)
11.2.11 window.postMessage
11.2.12 XMLHttpRequest Level 2
11.2.13 跨源通信的安全问题
11.3 表单
11.3.1 表单元素
11.3.2 表单控件
11.3.3 内容验证
11.3.4 可用于验证的事件
11.3.5 使用表单而不产生页面跳转的方法
第 12 章 库
12.1 使用库的原因
12.2 jQuery 的特征
12.3 jQuery 的基本概念
12.3.1 使用实例
12.3.2 链式语法
12.4 $函数
12.4.1 抽取与选择器相匹配的元素
12.4.2 创建新的 DOM 元素
12.4.3 将已有的 DOM 元素转换为 jQuery 对象
12.4.4 对 DOM 构造完成后的事件侦听器进行设定
12.5 通过 jQuery 进行 DOM 操作
12.5.1 元素的选择
12.5.2 元素的创建·添加·替换·删除
12.6 通过 jQuery 处理事件
12.6.1 事件侦听器的注册·删除
12.6.2 事件专用的事件侦听器注册方法
12.6.3 ready()方法
12.7 通过 jQuery 对样式进行操作
12.7.1 基本的样式操作
12.7.2 动画
12.8 通过 jQuery 进行 AJAX 操作
12.8.1 AJAX()函数
12.8.2 AJAX()的包装函数
12.8.3 全局事件
12.9 Deferred
12.9.1 Deferred 的基本概念
12.9.2 状态迁移
12.9.3 后续函数
12.9.4 并行处理
12.10 jQuery 插件
12.10.1 使用 jQuery 插件
12.10.2 创建 jQuery 插件
12.11 与其他库共同使用
12.11.1 $对象的冲突
12.11.2 避免$对象的冲突
12.12 库的使用方法
第 4 部分 HTML5
第 13 章 HTML5 概要
13.1 HTML5 的历史
HTML5 的发展历程
13.2 HTML5 的现状
13.2.1 浏览器的支持情况
13.2.2 Web 应用程序与原生应用程序
13.3 HTML5 的概要
第 14 章 Web 应用程序
14.1 History.API
14.1.1 History API 的定义
14.1.2 哈希片段
14.1.3 接口
14.2 ApplicationCache
14.2.1 关于缓存管理
14.2.2 缓存清单文件
14.2.3 ApplicationCache API
14.2.4 在线与离线
第 15 章 与桌面应用的协作
15.1 Drag.Drop.API
15.1.1 Drag Drop API 的定义
15.1.2 接口
15.1.3 基本的拖动与释放
15.1.4 自定义显示
15.1.5 文件的 Drag-In/ Drag-Out
15.2 File.API
15.2.1 File API 的定义
15.2.2 File 对象
15.2.3 FileReader
15.2.4 data URL
15.2.5 FileReaderSync
第 16 章 存储
16.1 Web.Storage
16.1.1 Web Storage 的定义
16.1.2 基本操作
16.1.3 storage 事件
16.1.4 关于 Cookie
16.1.5 命名空间的管理
16.1.6 版本的管理
16.1.7 对 localStorage 的模拟
16.2 Indexed.Database
16.2.1 Indexed Database 的定义
16.2.2 基础架构
16.2.3 连接数据库
16.2.4 对象存储的创建
16.2.5 数据的添加·删除·引用
16.2.6 索引的创建
16.2.7 数据的检索与更新
16.2.8 数据的排序
16.2.9 事务
16.2.10 同步 API
第 17 章 WebSocket
17.1 WebSocket 概要
17.1.1 WebSocket 的定义
17.1.2 现有的通信技术
17.1.3 WebSocket 的标准
17.1.4 WebSocket 的执行方式
17.2 基本操作
17.2.1 连接的建立
17.2.2 消息的收发
17.2.3 连接的切断
17.2.4 连接的状态确认
17.2.5 二进制数据的收发
17.2.6 WebSocket 实例的属性一览
17.3 WebSocket 实践
17.3.1 Node.js 的安装
17.3.2 服务器端的实现
17.3.3 客户端的实现
17.3.4 客户端的实现 2
第 18 章 Web Workers
18.1 Web.Workers 概要
18.1.1 Web Workers 的定义
18.1.2 Web Workers 的执行方式
18.2 基本操作
18.2.1 工作线程的创建
18.2.2 主线程一侧的消息收发
18.2.3 工作线程一侧的消息收发
18.2.4 工作线程的删除
18.2.5 外部文件的读取
18.3 Web.Worker 实践
18.3.1 工作线程的使用
18.3.2 中断对工作线程的处理
18.4 共享工作线程
18.4.1 共享工作线程的定义
18.4.2 共享工作线程的创建
18.4.3 共享工作线程的消息收发
18.4.4 共享工作线程的删除
18.4.5 共享工作线程的应用实例
第 5 部分 Web API
第 19 章 Web API 的基础
19.1 Web.API 与 Web 服务
Web API 的目标使用对象
19.2 Web.API 的历史
19.2.1 Web 抓取
19.2.2 语义网
19.2.3 XML
19.2.4 Atom
19.2.5 JSON
19.2.6 SOAP
19.2.7 REST
19.2.8 简单总结
19.3 Web.API 的组成
19.3.1 Web API 的形式
19.3.2 Web API 的使用
19.3.3 RESTful API
19.3.4 API 密钥
19.4 用户验证与授权
19.4.1 Web 应用程序的会话管理
19.4.2 会话管理与用户验证
19.4.3 Web API 与权限
19.4.4 验证与授权
19.4.5 OAuth
第 20 章 Web API 的实例
20.1 Web.API 的分类
20.2 Google.Translate.API
20.2.1 准备
20.2.2 执行方式的概要
20.2.3 使用了 Web API 的代码示例
20.2.4 微件(Google Translate Element)
20.3 Google.Maps.API
20.3.1 Google Static Maps API
20.3.2 我的地图
20.3.3 Google Maps API 的概要
20.3.4 简单的 Google Maps API 示例
20.3.5 事件
20.3.6 Geolocation API 与 Geocoding API
20.4 Yahoo!.Flickr
20.4.1 Flickr Web API 的使用
20.4.2 Flickr Web API 的使用实例
20.5 Twitter
20.5.1 搜索 API
20.5.2 REST API
20.5.3 Twitter JS API @anywhere
20.5.4 Twitter Widget
20.6 Facebook
20.6.1 Facebook 应用的发展历程
20.6.2 Facebook 的 JavaScript API
20.6.3 Facebook 的插件
20.7 OpenSocial
OpenSocial 的基本架构
第 6 部分 服务器端 JavaScript
第 21 章 服务器端 JavaScript 与 Node.js
21.1 服务器端 JavaScript 的动向
21.2 CommonJS
21.2.1 CommonJS 的定义
21.2.2 CommonJS 的动向
21.2.3 模块功能
21.3 Node.js
21.3.1 Node.js 概要
21.3.2 node 指令
21.3.3 npm 与包
21.3.4 console 模块
21.3.5 util 模块
21.3.6 process 对象
21.3.7 全局对象
21.3.8 Node.js 程序设计概要
21.3.9 事件 API
21.3.10 缓冲
21.3.11 流
第 22 章 Node.js 程序设计实践
22.1 HTTP 服务器处理
22.1.1 HTTP 服务器处理的基本流程
22.1.2 请求处理
22.1.3 响应处理
22.1.4 POST 请求处理
22.2 HTTP 客户端处理
22.3 HTTPS 处理
22.3.1 通过 openssl 指令发布自签名证书的方法
22.3.2 HTTPS 服务器
22.4 Socket.IO 与 WebSocket
22.5 下层网络程序设计
22.5.1 下层网络处理
22.5.2 套接字的定义
22.5.3 套接字程序设计的基本结构
22.5.4 套接字程序设计的具体实例
22.6 文件处理
22.6.1 本节的范例代码
22.6.2 文件的异步处理
22.6.3 文件的同步处理
22.6.4 文件操作相关函数
22.6.5 文件读取
22.6.6 文件写入
22.6.7 目录操作
22.6.8 对文件更改的监视
22.6.9 文件路径
22.7 定时器
22.8 Express
22.8.1 URL 路由
22.8.2 请求处理
22.8.3 响应处理
22.8.4 scaffold 创建功能
22.8.5 MVC 架构
22.8.6 模板语言 Jade
22.8.7 MongoDB(数据库)
22.8.8 Mongoose 的实例
22.8.9 使用了 Express 与 Mongoose 的 Web 应用程序
下载地址:https://www.wenjiangs.com/wp-content/uploads/2023/08/uZ2QMQNr0L4iMYfz.zip
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论