搜索
高级检索
高级搜索
书       名 :
著       者 :
出  版  社 :
I  S  B  N:
文献来源:
出版时间 :
JavaScript程序设计:algorithms and applications for desktop and mobile browsers
0.00    
图书来源: 浙江图书馆(由图书馆配书)
  • 配送范围:
    全国(除港澳台地区)
  • ISBN:
    9787115418166
  • 作      者:
    (美)John David Dionisio,(美)Ray Toal著
  • 出 版 社 :
    人民邮电出版社
  • 出版日期:
    2016
收藏
编辑推荐
  JavaScript是Web开发和网页设计的技术之一,也是一门教学语言,非常适合初涉计算机科学领域的学生学习。本书是专门为计算机编程入门课程设计的,它以一种现代化的方式向学生们介绍了计算机科学与编程,并提供了真实案例研究和大量练习。书中还介绍了一些通常不会在入门书中出现的主题,比如网页中的2D与3D图形、多点触控与手势交互界面、分布式计算、软件工程基础知识。此外还介绍了一些功能强大的工具,比如jQuery和正则表达式。为了强调动手操作在学习编程语言中的重要性,书中还提供了大量实用代码示例,并配备习题来供读者动手修改这些代码。
  本书具有以下特点。
  -逐步介绍JavaScript编程所需的全部知识。
  -将计算、算法、软件系统、数据组织等计算机科学的基本思想和原理介绍穿插其中,让读者通过编程掌握计算这门自然科学。
  -强调程序设计基础知识和基本原理,为编程打下坚实的基础。全面利用JavaScript对象字面量和“函数即值”特性在表达方面的能力,让读者尽早理解数据结构的重要性。
  -用结构完整、功能完善的案例研究来演示和整合各种重要概念,用具体示例来阐释文中介绍的实践。
  -提供大量精心选择的练习,让读者可以即刻测试和运用所学知识。
展开
作者简介
  John David Dionisio ,洛约拉马利蒙特大学计算机科学教授,研究方向包括交互设计和计算机制图,以及各类计算机应用学科。与Ray Toal另合著有The JavaScript Programming Language。 
  Ray Toal ,洛约拉马利蒙特大学教授,同时也是Friendbuy和Criteo公司的咨询顾问。从事计算机科学教研工作长达29年,在软件开发和架构方面有20多年的从业经验。
展开
内容介绍
  本书旨在通过从零开始介绍JavaScript 编程让读者理解计算机科学的基本思想和原理。书中内容丰富全面,阐述由浅入深。主要内容有:计算的相关知识、编程的基本概念、数据、语句、函数、事件、软件架构、分布式计算、图形与动画,此外还探讨了正则表达式、递归、缓存等高级主题。
展开
目录
第1 章 计算的概念 1
1.1 计算是一门自然科学 1
1.2 计算的五大学科 2
1.2.1 计算机科学 2
1.2.2 软件工程 2
1.2.3 计算机工程 2
1.2.4 信息技术 3
1.2.5 信息系统 3
1.3 与计算相关的职业 3
1.4 关于计算的误解 4
1.5 本章小结 5
1.6 练习 5
第2 章 编程 7
2.1 学习编程 7
2.2 基本概念 7
2.2.1 浏览器地址栏 8
2.2.2 运行器页面 8
2.2.3 交互式命令行 10
2.2.4 文件 12
2.3 程序的构成 16
2.3.1 表达式 16
2.3.2 变量 17
2.3.3 语句 20
2.4 编程惯例 21
2.4.1 注释 21
2.4.2 编码约定 22
2.4.3 代码质量检查工具 23
2.5 JavaScript编程语言 24
2.6 本章小结 24
2.7 练习 25
第3 章 数据 28
3.1 数据类型 28
3.2 真值 28
3.3 数值 29
3.3.1 数值运算 30
3.3.2 大小和精度的限制 30
3.3.3 NaN 31
3.3.4 十六进制数值 31
3.4 文本 32
3.4.1 字符、符号与字符集 32
3.4.2 字符串操作 35
3.5 undefined与null 36
3.6 对象 37
3.6.1 对象基础 37
3.6.2 理解对象引用 38
3.6.3 对象原型 40
3.6.4 自引用对象 41
3.7 数组 41
3.8 类型转换 44
3.8.1 弱类型 44
3.8.2 显式转换 45
3.8.3 松散相等操作符 47
3.9 typeof操作符* 47
3.10 本章小结 48
3.11 练习 48
第4 章 语句 52
4.1 声明语句 52
4.2 表达式语句 52
4.3 条件执行 54
4.3.1 if语句 54
4.3.2 条件表达式 56
4.3.3 switch语句 56
4.3.4 用查询避免条件代码 58
4.3.5 短路执行 61
4.4 迭代 62
4.4.1 while和do-while语句 62
4.4.2 for语句 63
4.4.3 for-in语句 67
4.5 中断 68
4.5.1 break和continue 69
4.5.2 异常 70
4.6 应该避免的编码风格 72
4.6.1 不分块的复合语句 72
4.6.2 隐式分号 73
4.6.3 隐式声明 74
4.6.4 递增和递减运算符 74
4.6.5 with语句 74
4.7 本章小结 74
4.8 练习 75
第5 章 函数 78
5.1 黑盒 78
5.2 定义和调用函数 78
5.3 示例 80
5.3.1 简单的一行函数 80
5.3.2 验证实参 81
5.3.3 将对象引用作为参数传送 82
5.3.4 先决条件 83
5.3.5 关注点的分离 85
5.3.6 斐波那契数列 86
5.4 作用域 87
5.5 作为对象的函数 89
5.5.1 函数的属性 89
5.5.2 作为属性的函数 89
5.5.3 构造器 90
5.6 上下文 95
5.7 高阶函数 96
5.8 函数声明与函数表达式* 98
5.9 本章小结 99
5.10 练习 100
第6 章 事件 105
6.1 用户互动 105
6.1.1 程序设计范例转移 105
6.1.2 事件举例:温度转换Web页面 106
6.2 定义用户界面元素 107
6.2.1 Web页面是结构化文档 108
6.2.2 生成用户界面控件的元素 109
6.3 以编程方式访问用户界面元素 112
6.3.1 document对象 112
6.3.2 DOM属性的乐趣 114
6.3.3 一个“玩耍”的地方 115
6.3.4 操控用户界面控件 116
6.3.5 遍历DOM* 118
6.4 事件处理程序 122
6.4.1 事件处理程序的骨架 122
6.4.2 事件处理程序是函数,是对象 123
6.5 事件对象 125
6.6 事件实现细节 126
6.6.1 事件捕获与冒泡 126
6.6.2 默认操作 127
6.6.3 指定事件处理程序 129
6.6.4 时间流逝触发的事件 130
6.6.5 多点触摸、手势和物理事件 131
6.7 案例研究:井字棋 135
6.7.1 文件与连接 135
6.7.2 初始化 137
6.7.3 事件处理 139
6.7.4 业务逻辑 139
6.8 本章小结 140
6.9 练习 140
第7 章 软件构架 146
7.1 软件工程活动 146
7.2 面向对象的设计与编程 146
7.2.1 对象族 147
7.2.2 继承 149
7.2.3 信息隐藏 153
7.2.4 属性描述符* 155
7.3 JavaScript标准对象 157
7.3.1 内置对象 157
7.3.2 Web浏览器宿主对象 166
7.4 模块 166
7.4.1 简单模块 167
7.4.2 作为模块的井字棋游戏 168
7.5 jQuery JavaScript库 171
7.6 性能 175
7.6.1 运行时效率 175
7.6.2 空间效率 177
7.6.3 加载时间效率 178
7.6.4 用户界面效率 179
7.7 单元测试 181
7.7.1 一个简单的例子 182
7.7.2 QUnit测试框架 183
7.7.3 软件开发过程中的测试 186
7.8 本章小结 187
7.9 练习 187
第8 章 分布式计算 193
8.1 分布式计算模型 193
8.2 数据交互格式 194
8.2.1 纯文本 194
8.2.2 XML 195
8.2.3 JSON 198
8.2.4 YAML 200
8.3 同步通信与异步通信 201
8.4 Ajax 202
8.4.1 jQuery中的Ajax 202
8.4.2 没有库的Ajax 206
8.5 设计分布式应用程序 208
8.5.1 统一资源标识符 208
8.5.2 REST 211
8.5.3 分布式应用程序关注点的分离 213
8.5.4 服务器端技术* 216
8.6 安全性 217
8.6.1 Web、不利因素和沙盒 217
8.6.2 同源策略 218
8.6.3 跨站脚本 222
8.6.4 mashup 224
8.7 案例研究:事件与趋势主题 225
8.7.1 日期选择用户界面 229
8.7.2 Ajax连接 230
8.7.3 结果处理 232
8.7.4 数据(mashup)显示 234
8.8 本章小结 235
8.9 练习 236
第9 章 图形与动画 246
9.1 基础知识 246
9.1.1 坐标空间 246
9.1.2 色彩 247
9.1.3 像素与对象/矢量 248
9.1.4 动画 250
9.2 HTML和CSS 250
9.2.1 图形的HTML元素 250
9.2.2 CSS 251
9.2.3 可视属性 254
9.2.4 绝对位置 257
9.2.5 案例研究:条形图 258
9.2.6 案例研究:汉诺塔显示 259
9.3 HTML和CSS中的动画 262
9.3.1 恒定速度 262
9.3.2 淡入与淡出 263
9.3.3 实现其他属性的动画 264
9.3.4 缓动动画 264
9.3.5 声明性CSS动画 265
9.4 canvas元素 266
9.4.1 实例化canvas 266
9.4.2 渲染上下文 266
9.4.3 绘制矩形 267
9.4.4 绘制直线和多边形 268
9.4.5 绘制弧和圆 269
9.4.6 绘制贝塞尔曲线和二次曲线 270
9.4.7 处理图像 271
9.4.8 变换 274
9.4.9 动画 278
9.4.10 canvas举例 280
9.5 SVG 283
9.5.1 在Web浏览器中查看SVG 284
9.5.2 SVG案例研究:一个贝塞尔曲线编辑器 286
9.5.3 绘画中的对象 287
9.5.4 读写属性 287
9.5.5 交互性(事件处理归来) 290
9.5.6 其他SVG功能 291
9.6 用WebGL实现3D图形 292
9.6.1 WebGL是3D canvas 292
9.6.2 案例研究:谢尔宾斯基三角 293
9.6.3 定义3D数据 295
9.6.4 着色器代码 295
9.6.5 绘制场景 296
9.6.6 交互性与事件 297
9.7 其他客户端图形技术 299
9.7.1 Flash 299
9.7.2 Java 299
9.7.3 VML 300
9.8 本章小结 300
9.9 练习 300
第10 章 高级主题 310
10.1 正则表达式 310
10.1.1 正则表达式简介 310
10.1.2 捕获 311
10.1.3 数量词 312
10.1.4 向后引用 313
10.1.5 正则表达式修饰符 313
10.1.6 RegExp构造器 314
10.1.7 正则表达式的更多内容 314
10.2 递归 314
10.2.1 什么是递归 315
10.2.2 递归经典示例 316
10.2.3 递归与家族树 322
10.2.4 什么时候不用递归 324
10.3 缓存 325
10.4 MapReduce 327
10.4.1 使用map、filter和reduce 327
10.4.2 实现 329
10.4.3 大规模数据处理中的MapReduce 330
10.5 动态创建事件处理程序 330
10.6 本章小结 333
10.7 练习 333
附录A JavaScript 语言参考 337
附录B 数值编码 352
附录C Unicode 355
术语表 363
参考文献 366
展开
加入书架成功!
收藏图书成功!
我知道了(3)
发表书评
读者登录

请选择您读者所在的图书馆

选择图书馆
浙江图书馆
点击获取验证码
登录
没有读者证?在线办证