图灵程序设计丛书:JavaScript编程全解 pdf下载pdf下载

图灵程序设计丛书:JavaScript编程全解百度网盘pdf下载

作者:
简介:本篇提供书籍《图灵程序设计丛书:JavaScript编程全解》百度网盘pdf下载
出版社:穆雷图书专营店
出版时间:2013-12
pdf下载价格:0.00¥

免费下载


书籍下载


内容介绍

基本信息

书名:图灵程序设计丛书:JavaScript编程全解

定价:79.00元

作者:井上诚一郎, 土江拓郎, 滨边将太, 陈筱烟

出版社:人民邮电出版社

出版日期:2013-12-01

ISBN:9787115333414

字数:794000

页码:406

版次:1

装帧:平装

开本:16开

商品重量:0.001kg

编辑推荐


日本2012年度冠军
对应ECMAScript 新版本
涵AJAX/jQuery/HTML5/WebSocket/Web API/Node.js

全方位介绍了JavaScript开发中的各个主题,无论是前端还是后端的JavaScript开发者都可以找到自己需要的内容。对HTML5、Web API、Node.js及WebSocket等新的热门技术也作了深入浅出的介绍,并提供了大量实际应用范例。
语法说明系统深入、示例代码规范详细,对各种容易产生问题之处做了重点说明,不但适合初学者入门,而且有经验的JavaScript开发人员、项目负责人也能从中受益。

内容提要


《JavaScript编程全解》涵盖了JavaScript开发中各个方面的主题,对从客户端及服务器端JavaScript等基础内容,到HTML5、Web API、Node.js与WebSocket等热门技术,都作了深入浅出的介绍与说明。读者能够通过本书了解当今JavaScript开发的新现状。《JavaScript编程全解》的一大特色是对JavaScript语言的语法规则进行了细致的说明,并通过大量纯正的JavaScript风格代码,帮助读者准确地掌握JavaScript的语言特性及细节用法。
  《JavaScript编程全解》适合JavaScript开发初学者系统入门、有经验的JavaScript开发者深入理解语言本质,也适合开发团队负责人、项目负责人作为综合性的JavaScript参考书阅读。

目录


部分 JavaScript概要 001
章 JavaScript概要 002
1.1 JavaScript概要 002
1.2 JavaScript的历史 002
1.3 ECMAScript 003
1.3.1 JavaScript的标准化 003
1.3.2 被放弃的ECMAScript第4版 004
1.4 JavaScript的版本 004
1.5 JavaScript实现方式 005
1.6 JavaScript运行环境 006
1.6.1 核心语言 006
1.6.2 宿主对象 007
1.7 JavaScript相关环境 007
1.7.1 库 007
1.7.2 源代码压缩 007
1.7.3 集成开发环境 008
第2部分 JavaScript的语言基础 009
第2章 JavaScript基础 010
2.1 JavaScript的特点 010
2.2 关于编排格式 011
2.3 量的基础 012
2.3.1 量的使用方法 012
2.3.2 省略var 013
2.3.3 常量 013
2.4 函数基础 013
2.4.1 函数的定义 013
2.4.2 函数的声明与调用 014
2.4.3 匿名函数 014
2.4.4 函数是一种对象 015
2.5 对象的基础 016
2.5.1 对象的定义 016
2.5.2 对象字面量表达式与对象的使用 016
2.5.3 属性访问 017
2.5.4 属性访问(括号方式) 017
2.5.5 方法 018
2.5.6 new表达式 018
2.5.7 类与实例 018
2.5.8 对类的功能的整理 018
2.5.9 对象与类型 019
2.6 数组的基础 019
第3章 JavaScript的数据类型 021
3.1 数据类型的定义 021
3.1.1 在数据类型方面与Java作比较 021
3.1.2 基本数据类型和引用类型 022
3.2 内建数据类型概要 022
3.3 字符串型 023
3.3.1 字符串字面量 023
3.3.2 字符串型的运算 024
3.3.3 字符串型的比较 024
3.3.4 字符串类(String类) 025
3.3.5 字符串对象 026
3.3.6 避免混用字符串值和字符串对象 027
3.3.7 调用String函数 027
3.3.8 String类的功能 027
3.3.9 非破坏性的方法 029
3.4 数值型 029
3.4.1 数值字面量 029
3.4.2 数值型的运算 030
3.4.3 有关浮点数的常见注意事项 030
3.4.4 数值类(Number类) 031
3.4.5 调用Number函数 031
3.4.6 Number类的功能 032
3.4.7 边界值与特殊数值 033
3.4.8 NaN 034
3.5 布尔型 035
3.5.1 布尔值 035
3.5.2 布尔类(Boolean类) 036
3.5.3 Boolean类的功能 036
3.6 null型 037
3.7 undefined型 037
3.8 Object类型 038
3.9 数据类型转换 039
3.9.1 从字符串值转换为数值 039
3.9.2 从数值转换为字符串值 040
3.9.3 数据类型转换的惯用方法 040
3.9.4 转换为布尔型 041
3.9.5 其他的数据类型转换 042
3.9.6 从Object类型转换为基本数据类型 042
3.9.7 从基本数据类型转换为Object类型 043
第4章 语句、表达式和运算符 045
4.1 表达式和语句的构成 045
4.2 保留字 045
4.3 标识符 046
4.4 字面量 047
4.5 语句 047
4.6 代码块(复合语句) 048
4.7 量声明语句 048
4.8 函数声明语句 048
4.9 表达式语句 048
4.10 空语句 049
4.11 控制语句 049
4.12 if—else语句 050
4.13 switch—case语句 052
4.14 循环语句 054
4.15 while语句 055
4.16 do—while语句 056
4.17 for语句 057
4.18 forin语句 058
4.18.1 数列与forin语句 059
4.18.2 在使用forin语句时需要注意的地方 060
4.19 foreachin语句 060
4.20 break语句 061
4.21 continue语句 061
4.22 通过标签跳转 062
4.23 return语句 063
4.24 异常 063
4.25 其他 064
4.26 注释 065
4.27 表达式 065
4.28 运算符 065
4.29 表达式求值 066
4.30 运算符的优先级以及结合律 066
4.31 算术运算符 067
4.32 字符串连接运算符 068
4.33 相等运算符 068
4.34 比较运算符 069
4.35 in运算符 070
4.36 instanceof运算符 071
4.37 逻辑运算符 071
4.38 位运算符 072
4.39 赋值运算符 072
4.40 算术赋值运算符 073
4.41 条件运算符(三目运算符) 073
4.42 typeof运算符 073
4.43 new运算符 074
4.44 delete运算符 074
4.45 void运算符 074
4.46 逗号(,)运算符 074
4.47 点运算符和中括号运算符 075
4.48 函数调用运算符 075
4.49 运算符使用以及数据类型转换中需要注意的地方 075
第5章 量与对象 076
5.1 量的声明 076
5.2 量与引用 076
5.2.1 函数的参数(值的传递) 078
5.2.2 字符串与引用 079
5.2.3 对象与引用相关的术语总结 079
5.3 量与属性 080
5.4 量的查找 081
5.5 对量是否存在的检验 081
5.6 对象的定义 082
5.6.1 抽象数据类型与面向对象 082
5.6.2 实例间的协作关系与面向对象 083
5.6.3 JavaScript的对象 083
5.7 对象的生成 083
5.7.1 对象字面量 083
5.7.2 构造函数与new表达式 085
5.7.3 构造函数与类的定义 087
5.8 属性的访问 087
5.8.1 属性值的更新 088
5.8.2 点运算符与中括号运算符在使用上的区别 088
5.8.3 属性的枚举 089
5.9 作为关联数组的对象 089
5.9.1 关联数组 089
5.9.2 作为关联数组的对象的注意点 090
5.10 属性的属性 091
5.11 垃圾回收 092
5.12 不可对象 092
5.12.1 不可对象的定义 092
5.12.2 不可对象的作用 092
5.12.3 实现不可对象的方式 093
5.13 方法 094
5.14 this引用 094
5.14.1 this引用的规则 094
5.14.2 this引用的注意点 095
5.15 apply与call 096
5.16 原型继承 097
5.16.1 原型链 097
5.16.2 原型链的具体示例 099
5.16.3 原型继承与类 100
5.16.4 对于原型链的常见误解以及_proto_属性 100
5.16.5 原型对象 101
5.16.6 ECMAScript第5版与原型对象 101
5.17 对象与数据类型 102
5.17.1 数据类型判定(constructor属性) 102
5.17.2 constructor属性的注意点 102
5.17.3 数据类型判定(instance运算与isPrototypeOf方法) 103
5.17.4 数据类型判定(鸭子类型) 103
5.17.5 属性的枚举(原型继承的相关问题) 104
5.18 ECMAScript第5版中的Object类 105
5.18.1 属性对象 105
5.18.2 访问器的属性 106
5.19 标准对象 108
5.20 Object类 108
5.21 全局对象 110
5.21.1 全局对象与全局量 110
5.21.2 Math对象 111
5.21.3 Error对象 112
第6章 函数与闭包 113
6.1 函数声明语句与匿名函数表达式 113
6.2 函数调用的分类 113
6.3 参数与局部量 114
6.3.1 arguments对象 114
6.3.2 递归函数 114
6.4 作用域 115
6.4.1 浏览器与作用域 116
6.4.2 块级作用域 116
6.4.3 let与块级作用域 117
6.4.4 嵌套函数与作用域 119
6.4.5 量隐藏 119
6.5 函数是一种对象 120
6.6 Function类 122
6.7 嵌套函数声明与闭包 123
6.7.1 对闭包的初步认识 123
6.7.2 闭包的原理 123
6.7.3 闭包中需要注意的地方 126
6.7.4 防范命名空间的污染 127
6.7.5 闭包与类 129
6.8 回调函数设计模式 130
6.8.1 回调函数与控制反转 130
6.8.2 JavaScript与回调函数 131
第7章 数据处理 134
7.1 数组 134
7.1.1 JavaScript的数组 134
7.1.2 数组元素的访问 135
7.1.3 数组的长度 136
7.1.4 数组元素的枚举 136
7.1.5 多维数组 137
7.1.6 数组是一种对象 138
7.1.7 Array类 139
7.1.8 数组对象的意义 140
7.1.9 数组的习惯用法 141
7.1.10 数组的内部实现 144
7.1.11 数组风格的对象 145
7.1.12 迭代器 145
7.1.13 生成器 147
7.1.14 数组的内包 149
7.2 JSON 149
7.2.1 JSON字符串 149
7.2.2 JSON对象 150
7.3 日期处理 151
7.4 正则表达式 153
7.4.1 正则表达式的定义 153
7.4.2 正则表达式相关的术语 154
7.4.3 正则表达式的语法 154
7.4.4 JavaScript中的正则表达式156
7.4.5 正则表达式程序设计 157
7.4.6 字符串对象与正则表达式对象 158
第3部分 客户端JavaScript 161
第8章 客户端JavaScript与HTML 162
8.1 客户端JavaScript的重要性 162
8.1.1 Web应用程序的发展 162
8.1.2 JavaScript的性能提升 162
8.1.3 JavaScript的作用 163
8.2 HTML与JavaScript 163
8.2.1 网页显示过程中的处理流程 163
8.2.2 JavaScript的表述方式及其执行流程 163
8.2.3 执行流程的小结 166
8.3 运行环境与开发环境 166
8.3.1 运行环境 166
8.3.2 开发环境 166
8.4 调试 167
8.4.1 alert 167
8.4.2 console 167
8.4.3 onerror 169
8.4.4 Firebug,WebInspector(DeveloperTools),OperaDragonfly 169
8.5 跨浏览器支持 171
8.5.1 应当提供支持的浏览器 171
8.5.2 实现方法 172
8.6 Window对象 174
8.6.1 Navigator对象 174
8.6.2 Location对象 174
8.6.3 History对象 175
8.6.4 Screen对象 176
8.6.5 对Window对象的引用 176
8.6.6 Document对象 176
第9章 DOM 177
9.1 DOM的定义 177
9.1.1 DOMLevel1 177
9.1.2 DOMLevel2 177
9.1.3 DOMLevel3 178
9.1.4 DOM的表述方式 178
9.2 DOM的基础 179
9.2.1 标签、元素、节点 179
9.2.2 DOM操作 179
9.2.3 Document对象 179
9.3 节点的选择 180
9.3.1 通过ID检索 180
9.3.2 通过标检索 180
9.3.3 通过名称检索 184
9.3.4 通过类名检索 184
9.3.5 父节点、子节点、兄弟节点 185
9.3.6 XPath 187
9.3.7 SelectorAPI 189
9.4 节点的创建与新增 190
9.5 节点的内容更改 190
9.6 节点的删除 190
9.7 innerHTML/textContent 190
9.7.1 innerHTML 190
9.7.2 textContent 191
9.8 DOM操作的性能 191

0章 事件 192
10.1 事件驱动程序设计 192
10.2 事件处理程序/事件侦听器的设定 192
10.2.1 指定为HTML元素的属性193
10.2.2 指定为DOM元素的属性 194
10.2.3 通过EventTarget.addEventListener()进行指定 194
10.2.4 事件处理程序/事件侦听器内的this引用 196
10.3 事件的触发 196
10.4 事件的传播 196
10.4.1 捕获阶段 197
10.4.2 目标阶段 197
10.4.3 事件冒泡阶段 197
10.4.4 取消 197
10.5 事件所具有的元素 198
10.6 标准事件 199
10.6.1 DOMLevel2中所定义的事件 199
10.6.2 DOMLevel3中所定义的事件 200
10.7 自定义事件 202
1章 客户端JavaScript实践 203
11.1 样式 203
11.1.1 样式的更方法 203
11.1.2 位置的设定 207
11.1.3 位置 208
11.1.4 动画 209
11.2 AJAX 210
11.2.1 异步处理的优点 210
11.2.2 XMLHttpRequest 210
11.2.3 基本的处理流程 210
11.2.4 同步通信 212
11.2.5 超时 212
11.2.6 响应 213
11.2.7 跨源限制 214
11.2.8 跨源通信 214
11.2.9 JSONP 214
11.2.10 iframe攻击(iframehack) 215
11.2.11 window.postMessage218
11.2.12 XMLHttpRequestLevel2 219
11.2.13 跨源通信的安全问题 219
11.3 表单 219
11.3.1 表单元素 219
11.3.2 表单控件 221
11.3.3 内容验证 221
11.3.4 可用于验证的事件 222
11.3.5 使用表单而不产生页面跳转的方法 222
2章 库 224
12.1 使用库的原因 224
12.2 jQuery的特征 224
12.3 jQuery的基本概念 225
12.3.1 使用实例 225
12.3.2 链式语法 226
12.4 $函数 227
12.4.1 抽取与选择器相匹配的元素 227
12.4.2 创建新的DOM元素 227
12.4.3 将已有的DOM元素转换为jQuery对象 227
12.4.4 对DOM构造完成后的事件侦听器进行设定 227
12.5 通过jQuery进行DOM操作 228
12.5.1 元素的选择 228
12.5.2 元素的创建·添加·替换·删除 230
12.6 通过jQuery处理事件 231
12.6.1 事件侦听器的注册·删除 231
12.6.2 事件专用的事件侦听器注册方法 232
12.6.3 ready()方法 232
12.7 通过jQuery对样式进行操作 233
12.7.1 基本的样式操作 233
12.7.2 动画 234
12.8 通过jQuery进行AJAX操作 235
12.8.1 AJAX()函数 235
12.8.2 AJAX()的包装函数 236
12.8.3 全局事件 237
12.9 Deferred 237
12.9.1 Deferred的基本概念 237
12.9.2 状态迁移 238
12.9.3 后续函数 239
12.9.4 并行处理 241
12.10 jQuery插件 241
12.10.1 使用jQuery插件 241
12.10.2 创建jQuery插件 242
12.11 与其他库共同使用 243
12.11.1 $对象的冲突 243
12.11.2 避免$对象的冲突 243
12.12 库的使用方法 244
第4部分 HTML5 245
3章 HTML5概要 272
13.1 HTML5的历史 246
13.2 HTML5的现状 247
13.2.1 浏览器的支持情况 247
13.2.2 Web应用程序与原生应用程序 248
13.3 HTML5的概要 248
4章 Web应用程序 250
14.1 HistoryAPI 250
14.1.1 HistoryAPI的定义 250
14.1.2 哈希片段 250
14.1.3 接口 251
14.2 ApplicationCache 255
14.2.1 关于缓存管理 255
14.2.2 缓存清单文件 255
14.2.3 ApplicationCache API 258
14.2.4 在线与离线 259
5章 与桌面应用的协作 260
15.1 DragDropAPI 260
15.1.1 DragDropAPI的定义 260
15.1.2 接口 261
15.1.3 基本的拖动与释放 262
15.1.4 自定义显示 263
15.1.5 文件的Drag—In/Drag—Out 265
15.2 FileAPI 267
15.2.1 FileAPI的定义 267
15.2.2 File对象 267
15.2.3 FileReader 269
15.2.4 dataURL 271
15.2.5 FileReaderSync 273
6章 存储 274
16.1 WebStorage 274
16.1.1 WebStorage的定义 274
16.1.2 基本操作 275
16.1.3 storage事件 277
16.1.4 关于Cookie 277
16.1.5 命名空间的管理 278
16.1.6 版本的管理 279
16.1.7 对localStorage的模拟 279
16.2 IndexedDatabase 280
16.2.1 IndexedDatabase的定义 280
16.2.2 基础架构 280
16.2.3 连接数据库 281
16.2.4 对象存储的创建 281
16.2.5 数据的添加·删除·引用 282
16.2.6 索引的创建 283
16.2.7 数据的检索与更新 284
16.2.8 数据的排序 285
16.2.9 事务 285
16.2.10 同步API 286
7章 WebSocket 287
17.1 WebSocket概要 287
17.1.1 WebSocket的定义 287
17.1.2 现有的通信技术 287
17.1.3 WebSocket的标准 290
17.1.4 WebSocket的执行方式 290
17.2 基本操作 291
17.2.1 连接的建立 291
17.2.2 消息的收发 291
17.2.3 连接的切断 292
17.2.4 连接的状态确认 292
17.2.5 二进制数据的收发 293
17.2.6 WebSocket实例的属性一览 293
17.3 WebSocket实践 294
17.3.1 Node.js的安装 294
17.3.2 服务器端的实现 295
17.3.3 客户端的实现 295
17.3.4 客户端的实现2 296
8章 WebWorkers 298
18.1 WebWorkers概要 298
18.1.1 WebWorkers的定义 298
18.1.2 WebWorkers的执行方式 298
18.2 基本操作 299
18.2.1 工作线程的创建 299
18.2.2 主线程一侧的消息收发 299
18.2.3 工作线程一侧的消息收发 300
18.2.4 工作线程的删除 300
18.2.5 外部文件的读取 301
18.3 Web Worker实践 301
18.3.1 工作线程的使用 301
18.3.2 中断对工作线程的处理 302
18.4 共享工作线程 304
18.4.1 共享工作线程的定义 304
18.4.2 共享工作线程的创建 304
18.4.3 共享工作线程的消息收发 305
18.4.4 共享工作线程的删除 306
18.4.5 共享工作线程的应用实例 306
第5部分 WebAPI 309
9章 WebAPI的基础 310
19.1 WebAPI与Web服务 310
19.2 WebAPI的历史 311
19.2.1 Web抓取 311
19.2.2 语义网 311
19.2.3 XML 311
19.2.4 Atom 312
19.2.5 JSON 312
19.2.6 SOAP 313
19.2.7 REST 313
19.2.8 简单总结 313
19.3 WebAPI的组成 314
19.3.1 WebAPI的形式 314
19.3.2 WebAPI的使用 315
19.3.3 RESTfulAPI 315
19.3.4 API密钥 316
19.4 用户验证与授权 317
19.4.1 Web应用程序的会话管理 317
19.4.2 会话管理与用户验证 318
19.4.3 WebAPI与权限 319
19.4.4 验证与授权 320
19.4.5 OAuth 321
第20章 WebAPI的实例 323
20.1 WebAPI的分类 323
20.2 GoogleTranslateAPI 324
20.2.1 准备 325
20.2.2 执行方式的概要 325
20.2.3 使用了WebAPI的代码示例 326
20.2.4 微件(GoogleTranslateElement) 327
20.3 GoogleMapsAPI 328
20.3.1 GoogleStaticMapsAPI 328
20.3.2 我的地图 329
20.3.3 GoogleMapsAPI的概要 330
20.3.4 简单的GoogleMapsAPI示例 330
20.3.5 事件 331
20.3.6 GeolocationAPI与GeocodingAPI 333
20.4 Yahoo!Flickr 334
20.4.1 FlickrWebAPI的使用 335
20.4.2 FlickrWebAPI的使用实例 336
20.5 Twitter 337
20.5.1 搜索API 337
20.5.2 RESTAPI 338
20.5.3 TwitterJSAPI@anywhere 339
20.5.4 TwitterWidget 341
20.6 Facebook 341
20.6.1 Facebook应用的发展历程 341
20.6.2 Facebook的JavaScriptAPI 343
20.6.3 Facebook的插件 344
20.7 OpenSocial 345
第6部分 服务器端JavaScript 351
第21章 服务器端JavaScript与Node.js 352
21.1 服务器端JavaScript的动向 352
21.2 CommonJS 352
21.2.1 CommonJS的定义 352
21.2.2 CommonJS的动向 353
21.2.3 模块功能 353
21.3 Node.js 355
21.3.1 Node.js概要 355
21.3.2 node指令 359
21.3.3 npm与包 359
21.3.4 console模块 360
21.3.5 util模块 361
21.3.6 process对象 362
21.3.7 全局对象 363
21.3.8 Node.js程序设计概要 363
21.3.9 事件API 365
21.3.10 缓冲 369
21.3.11 流 372
第22章 Node.js程序设计实践 374
22.1 服务器处理 374
22.1.1 服务器处理的基本流程 374
22.1.2 请求处理 375
22.1.3 响应处理 376
22.1.4 POST请求处理 377
22.2 客户端处理 378
22.3 S处理 379
22.3.1 通过openssl指令发布自证书的方法 379
22.3.2 S服务器 379
22.4 Socket.IO与WebSocket 380
22.5 下层网络程序设计 381
22.5.1 下层网络处理 381
22.5.2 套接字的定义 382
22.5.3 套接字程序设计的基本结构 382
22.5.4 套接字程序设计的具体实例 384
22.6 文件处理 385
22.6.1 本节的范例代码 385
22.6.2 文件的异步处理 386
22.6.3 文件的同步处理 386
22.6.4 文件操作相关函数 387
22.6.5 文件读取 387
22.6.6 文件写入 388
22.6.7 目录操作 389
22.6.8 对文件更改的监视 390
22.6.9 文件路径 390
22.7 定时器 390
22.8 Express 391
22.8.1 URL路由 392
22.8.2 请求处理 392
22.8.3 响应处理 393
22.8.4 scaffold创建功能 393
22.8.5 MVC架构 393
22.8.6 模板语言Jade 394
22.8.7 MongoDB(数据库) 395
22.8.8 Mongoose的实例 397
22.8.9 使用了Express与Mongoose的Web应用程序 398
后记 401
索引 403

作者介绍


井上诚一郎
曾在美国参与过Lotus Notes的开发,后在日本创立了Ariel Network股份公司,任CTO。目前从事面向企业的PSP软件及企业产品的开发。著有《PSP教科书》、《Java编程详解》、《实践JS 服务器端JavaScript入门》等书。负责本书Part1、Part2、Part5与Part6的撰写。

土江拓郎
大学时学习了航天工程学和机器人工程学,之后凭着兴趣进入了IT行业工作。2008年加入Ariel Network股份公司。从事Java及JavaScript相关的企业产品开发工作。负责本书Part3的撰写。

滨边将太
学生时代在Ariel Network股份公司实习。学习了软件开发的基础知识并了解了开发人员的工作生活情况。2009年加入了雅虎公司,从事针对电视的软键盘开发,以及智能手机应用GyaO!的开发。近正在公司中开展HTML5及Node.js的普及活动。负责了本书Part4的撰写。

陈筱烟
毕业于复旦大学计算机科学与技术系,主要研究方向为跨设备人机交互理论。长期从事对日软件外包工作。从大学时期开始接触并使用Java、JavaScript进行程序开发,现在对Web应用及智能手机应用的开发很感兴趣。

文摘


序言