首页>参考读物>计算机科学与技术>软件与程序设计

JavaScript程序设计:基础·PHP·XML
作者 : (美)Elizabeth Drake 著
译者 : 阮文江 译
丛书名 : 华章程序员书库
出版日期 : 2015-03-18
ISBN : 978-7-111-49013-5
定价 : 139.00元
扩展资源下载
扩展信息
语种 : 简体中文
页数 : 763
开本 : 16
原书名 : Introduction to JavaScript Programming with XML and PHP
原出版社: Pearson Education Asia
属性分类: 店面
包含CD :
绝版 : 未绝版
图书简介

本书从计算机的基础知识开始介绍,涵盖程序设计的基础知识、JavaScript基础知识、JavaScript的循环结构、选择结构、表单、函数和源文件、数组、搜索和排序、文件对象模型和XML、PHP概述及相关知识。本书充分考虑初学者的需求,内容深入浅出,每章后都安排了相应的案例、练习和实践项目。不仅让读者了解相应的语法知识,更让读者掌握使用工具软件进行开发的方法,顺利进行WEB开发。

图书特色

JavaScript 是 Web 上的一种功能强大的编程语言,用于开发交互式网页。它不仅可以直接应用于 HTML 文档以获得交互效果或其他动态效果,而且可以运行于服务器端,从而替代传统的 CGI 程序。JavaScript 符合 ECMAScript 语言标准,支持多种程序设计风格。
本书是一本面向入门级 Web 程序员的教材,与常见的JavaScript书籍不同,本书不要求读者有任何的程序设计基础。本书内容由浅入深,既包含 JavaScript 的基本编程技术,也涵盖 JavaScript 与 XML、PHP、MySQL 的协同编程方法。本书提供近300个案例,都配有可以直接运行的源代码,读者可在此基础上进行学习或者二次开发。本书的学习资源丰富,无论是学生还是教师,都能方便地用本书进行教和学。

主要特点:
笔法细腻、循序渐进。本书详细讲解了程序设计的基本概念,对每个示例程序和代码都有详细的注释和讲解。
示例丰富、贯穿始终。本书为每个新知识点提供了相应的例子,有两个完整的案例(一个游戏网站和一个教学网站)贯穿全书,增强了趣味性和实用性。
立足基础、兼顾全局。本书主要讲解基于 JavaScrpt 的 Web 客户端编程技术,简单介绍了 Web 服务器端开发技术 PHP 和 MySQL,使读者能够很自然地使用 JavaScript ,理解与服务器端技术的交互性。

作者简介
Elizabeth Drake  具有30多年各类高等教育的教学经验,先后开发和教授过从社区学院到大学的不同学科(包括计算机科学、物理、数学和人类学)课程。她一直在讲授计算机类课程,主要是在美国佛罗里达的圣达菲学院。她为圣达菲学院开发了Web编程课程,目前正在开发移动应用课程体系。她还编写出版了程序设计逻辑和JavaScript程序设计方面的教材。


内容简介
本书主要介绍JavaScript程序设计的基本概念和实现方法,涵盖JavaScript 程序设计基础、编程基础、 JavaScript 基本控制结构(顺序、选择和重复)、JavaScript表单、JavaScript函数、外部 JavaScript 文件、数组、高级搜索和排序技术、文档对象模型、XML、PHP等知识。本书充分考虑初学者的需求,内容深入浅出,每章后都有相应的案例、练习和实践项目。通过本书的学习,可以创建一个动态网站。
本书可作为高等院校本、专科各专业 JavaScript 程序设计、Web 程序设计和动态网页制作等课程的教材。

图书前言

欢迎阅读本书。作者创作本书的动机是为两年期“因特网服务程序设计”学习过程中的“因特网程序设计Ⅰ”课程提供适当的学习资料。在完成两年Web开发课程之后,学生必须熟悉客户端和服务器端脚本语言。尽管有许多很好的关于静态网页开发技术(HTML、XHTML、HTML5和CSS)的书籍,但涉及JavaScript的书籍要么过于繁琐要么远超出两年期学习计划。因此本书设计成满足入门级程序员的需求,使他们能够很自然地使用JavaScript并且理解它与服务器端技术的交互性。
本书可用于为已了解HTML和CSS知识的学生开设的一学期“JavaScript程序设计”课程。本书程序设计基础部分强调把程序设计概念应用于JavaScript和PHP中,适用于从来没有或者略有编程经验的学生。每个概念都通过简短的例子来帮助读者加深对概念的理解,短例后面紧跟着面向实际环境的较长例子。
两个案例研究贯穿全书:一个游戏网站和一个教学网站。每章都有一节为这两个案例研究增加内容和功能,并且学生可以在每章末尾的编程挑战中补充内容。另外两个网站(一个是园艺公司网站,另一个是珠宝公司网站)也可以从零开始建立,并且学生可以在编程挑战中增强它们的功能。老师可以根据要求调整这些内容。
本书假定学生已经学过HTML和CSS,并且是创建静态网页的好手。然而,不要求学生有编程经验,也不要求学生具备数学、财务或其他学科的特殊知识。当最后一章使用SQL命令时,不要求学生已经接触过SQL或数据库。
本书组织
本书从第0章计算机基础开始,随后第1章着眼于JavaScript程序设计入门的一般概念。第1章介绍贯穿全书的案例研究,但本书各章的案例研究是相互独立的,可以单独使用。第2章介绍变量、操作符和数据类型。对于那些从来没有学习过程序设计课程和熟悉程序设计概念的学生来说,这几章是非常重要的。理解网页和JavaScript代码之间的交互性是JavaScript最基本的重要特征之一。
第3~5章学习JavaScript基本控制结构,即顺序、选择和重复。没有编程经验的学生将学习这些语句结构一般是如何工作的,特别是在JavaScript中。有编程经验的学生可以快速阅读这几章。
第6和7章是JavaScript独有的,包含表单、函数和外部JavaScript文件。由于大多数学生已经在静态网页中使用过表单,所以这里以与JavaScript程序对接的方法讨论表单。
第8和9章包含数组和几种高级搜索与排序技术,这两章连同后面的三章最适合具有牢固编程基础的学生。
第10章讨论文档对象模型并介绍XML,第11和12章介绍PHP。学完这三章后,学生将能够开发使用数据库处理数据的网站。学生可以使用免费程序XAMPP在计算机上建立一个含有MySQL和PHP软件的Apache服务器。本书将详细介绍这个软件的操作方法。不需要具备MySQL或数据库知识,学生可以借助给出的MySQL命令建立使用数据库、服务器和PHP的实际环境,从而创建一个动态网站。
每章都有很多例子。自始至终,例子、检查点和练习的难度依次从最基本的概念理解提高到非常有挑战性的实际应用。每章包含一节操作实践,在此开发案例研究网站Greg's Gambits和Carla's Classroom。在每章末尾的编程挑战部分,要求学生对这些案例研究进行补充。如果从本书开始学习到结束,开发的这些案例研究将建成健壮的网站。编程挑战还包含另外两个案例研究,即Lee's Landscape和Jackie's Jewelry网站,学生将完全靠自己建立这两个网站。本书在编程挑战部分为Greg's Gambits和Carla's Classroom项目提供了很多帮助,而为Lee's Landscape和Jackie's Jewelry项目只提供了很少的帮助。老师可以决定学生完成这些项目的独立程度。
练习部分包含填空题、判断题和简答题,而在编程挑战部分学生能够使用相应章节学习的知识创建自己的网页。
各章简介
格式说明
本书通过使用不同的字体来区分程序代码,变量和数组名是粗体。有时某些代码必须单行录入,但是限于纸张大小不可能完整地把这些代码显示在一行,因此使用符号表示下一行代码应该是上一行的一部分,这个符号不应该包含在内。如果没有符号,那么下列样例代码应该录入在同一行。注意,其中的变量dinner是粗体:

第1章 本章介绍程序设计和JavaScript,讨论程序设计的一般问题解决策略以及程序的基本结构和3种控制结构,讨论用伪代码和流程图规划程序以及数据类型,引导学生在网页中创建JavaScript脚本,讨论对象、点标记以及几个重要的JavaScript方法和事件,介绍Greg's Gambits和Carla's Classroom网站并使用JavaScript为这些网站创建交互页面。
第2章 本章着眼于变量、JavaScript数据类型和操作符(包括算术、关系和逻辑操作符),解释类似JavaScript的弱类型语言和强类型语言的区别,讨论连接操作符的使用和JavaScript对用户输入数字的处理方法,讨论条件操作符从而使学生在不会使用选择结构的情况下创建有趣的页面,讨论操作符优先级和ASCII码。学生要为Greg's Gambits网站创建填字游戏并为Carla's Classroom网站创建拼写课。
第3章 本章讨论判断(选择)结构(包含单路、二路和多路分支结构)。介绍switch语句、验证方法和Math对象,使用嵌套选择结构和复合条件开发程序。学生可以使用Math.random()方法创建有趣的程序,要为Greg's Gambits创建幸运预言程序并且为Carla's Classroom创建一门算术课。
第4章 本章从重复结构开始,着眼于基本的循环结构:前测、后测循环,哨兵控制循环,计数器控制循环以及用于数据输入和数据验证的循环。循环语句包括while循环、do...while循环和for循环。学生要为Greg's Gambits创建一个信息编码器并且为第3章创建的Carla's Classroom算术课增加很多功能和深度。
第5章 本章进一步探讨第3章和第4章涉及的重复结构和选择结构,通过使用Math对象的一些方法介绍总数和平均数的计算方法,深入探讨嵌套结构(包括循环中的选择结构、循环中的循环和选择结构中的循环)以及台式检查。介绍提前退出循环的各种方法。学生要为Greg's Gambits创建一个战斗游戏(石头-纸-剪刀游戏的变种)并且为Carla's Classroom创建语法课。
第6章 大多数学过网页制作课程的学生已经处理过表单,然而本章的目的是让学生熟悉用JavaScript处理表单。由于网页制作课程已经讨论过基本的表单控件(单选按钮、复选框、文本框、文本区框、选择列表)以及隐藏字段和特殊控件(密码元素、提交和重置按钮),因此本章着眼于把表单数据返回给JavaScript程序,然后这个程序可以使用这些数据并且把其他信息返回给网页或者通过电子邮件把信息发送给用户。学生要为Greg's Gambits网站用户创建一个物品目录页面,并且为Carla's Classroom网站的Carla生成一份将发送给学生父母的学习进度报告。
第7章 本章包含函数、对象和JavaScript源文件,讨论内置和自定义函数,包含变量作用域、使用实参和形参、值参数和引用参数、按引用传递与按值传递,介绍新的对象(Boolean对象和Date对象)并且提供Math对象的更多信息,介绍创建和使用外部JavaScript源文件。学生要为Greg's Gambits创建一个悬吊人猜字游戏,并且为Carla's Classroom创建阅读理解课。
第8章 本章是着眼于数组的两章中的一章,讨论作为JavaScript对象的数组概念(包含一维数组、二维数组和平行数组),讨论装载数组的不同方法以及几个添加和删除数组元素的JavaScript数组方法。学生要为Greg's Gambits创建一个数字拼图游戏15,并且为Carla's Classroom创建一个幻灯片放映。
第9章 本章基于第8章,讲解排序和搜索数组,讨论JavaScript的sort()和reverse()方法。为了维护平行数组的完整性,开发其他搜索和排序方法,包括两个排序算法(冒泡排序和选择排序)、两个搜索算法(线性搜索和二分搜索)以及一些实施搜索的JavaScript方法。学生要为Greg's Gambits创建一个拼字游戏并且为Carla's Classroom创建因数分解课。
第10章 本章从JavaScript转到相关主题,讨论文档对象模型(DOM)和XML,讨论DOM节点和树的概念以及网页的父子模型,讨论用DOM技术创建、插入、删除和替换元素以及使用DOM方法创建定时器。本章还介绍了XML、XSL、命名空间和模式。在为Greg's Gambits创建页面时,结合使用XML和JavaScript是显示数据的另一种替代方法,结合使用XML和JavaScript为Carla's Classroom创建拼写课。
第11章 这是两章PHP相关内容的一章。要使用PHP,学生必须能够访问服务器。本章向学生介绍XAMPP的安装和使用方法,它是一个包含Apache服务器、PHP和MySQL的免费程序,并且能够安装在任何个人计算机或笔记本电脑上。本章讨论PHP基本知识,包括PHP文件名、如何访问Apache服务器的文件、PHP数据类型、PHP操作符和PHP关键字,介绍PHP的基本程序结构(包括顺序、选择和重复)与PHP数组和字符串,强调在服务器上为网站创建适当的文件夹结构。学生要使用PHP为Greg's Gambits创建欢迎页面,并且通过使用ajax_post()函数让用户向服务器发送和返回数据。学生还要使用PHP为Carla's Classroom创建一个页面,让用户输入部分名字然后程序显示一个大数组中的所有条目或者以那些字符开头的列表(也就是说,程序为用户提供可用选项并最终能够用于自动完成用户录入)。
第12章 本章在第11章介绍PHP的基础上示范如何完成两个特别而又重要的任务,讨论创建和读取Cookie,指引学生使用phpMyAdmin控制台创建数据库(它是XAMPP安装的一部分)。然后,使用PHP方法填充数据库。因为本书不包括MySQL的学习并且不要求学生具备数据库管理和MySQL知识,所以本章给出开发程序所需要的所有MySQL命令和语句,并且给出解释。这样,学生就能够为想要成为Greg's Gambits游戏网站成员的玩家创建和验证账户。学生也要为Carla's Classroom创建一个数据库,并且从数据库中提取信息从而向学生父母发送一封电子邮件报告。
附录A 列出可打印和不可打印的ASCII字符,每个字符有对应的十进制数和十六进制数
编码。
附录B 列出算术操作符、关系操作符和逻辑操作符(如本书所用)以及操作符优先级表。
附录C 列出最常见的HTML实体,包含表示HTML保留字的实体。
附录D 列出下列对象的属性和方法:Array、Boolean、Date、Math、Number、String和RegExp,并列出JavaScript全局属性和函数。
附录E 解释jQuery概念、如何在网页中包含它、在哪里获取它、如何存储它以及jQuery函数的一个简短样例。
附录F 列出最常用的DOM属性、方法和事件以及3个重要的节点属性。
附录G 列出PHP保留字和关键字以及PHP预定义常量。
附录H 列出包含本书使用的常用PHP MySQL函数。
附录I 列出本书检查点的答案。
本书特色
例子
本书有超过235个已编号的可运行例子。所有程序代码行都标注了行号,并且通过引用行号详细解释每个例子的代码。展示的所有代码已经测试过,如果学生复制和运行这些例子,程序将正常运行。截屏展示相应的运行结果。
检查点
在每节末尾有5~10题检查点练习,以强化最重要的概念和编码技能。检查点的答案在
附录I中。
操作实践
每章的最后有一节是操作实践,用于开发和扩展两个网站。Greg's Gambits是一个游戏网站,学生将在每章为这个网站逐步创建新的游戏或特征。Carla's Classroom是为一位小学老师开发的网站,学生将在每章为这个网站逐步创建老师可以在课堂中使用的课程或特色。本书为这两个网站开发了完整代码,并且在复习与练习中扩展这些网站的内容。在复习与练习的编程挑战一节包含一些练习,要求学生为Greg's Gambits创建新游戏或者为Carla's Classroom创建新课程。这些任务是操作实践工作的延续,但是可能有新的要求。在编程挑战中,为Greg's Gambits引入的概念将用于Carla's Classroom的新项目,Greg's Gambits的新项目将利用Carla's Classroom的概念和技能。因此,如果指导老师从本书开始到结束跟随开发其中的一个网站,那么将能够帮助学生创建一个包含所有重要概念和技能的实际项目,也就是创建一个健壮的实用网站。
操作实践一节按如下方式组织:学生可以使用提供的代码实施项目,并且在编程挑战中自己创建类似而又有所扩展的代码来扩展知识和技能。
在Student Data Files中包含这些项目需要的所有文件,如图像、文本文件等。
练习
每章包含从简单到复杂的40多道练习题,这些练习题分为以下几类。
每节末尾的检查点测试学生对这一节内容的理解程度。
每章末尾的练习包括:
填空题
判断题
简答题
编程挑战:
使用本章概念创建简短网页。
扩展操作实践创建的网页,或者为Greg's Gambits和Carla's Classroom增加新内容。
从零开始建立两个公司网站Lee's Landscape和Jackie's Jewelry中的一个,每章增加一点内容。
检查点的答案放在附录I和网站www.pearsonhighered.com/irc中。Student Data Files提供复习与练习中奇数编号的答案,包括编程挑战中的参考答案并提供完整的必要代码。在Student Data Files中包含要完成任何项目需要的所有文件,包括图像、JavaScript源文件和文本文件等。
辅助资料
学生支持网站
学生可以从本书英文版的配套网站(www.pearsonhighered.com/drake)下载以下多种可用的资料:
每章的幻灯片讲稿。
所有检查点的答案。
所有原版书奇数编号练习的答案。
视频课件。
所有例子、操作实践和练习需要的图像、文本文件和其他外部文件。
教师辅助资料
Pearson教师资源中心为有资格的老师提供多种辅助资料,包括:
每章的幻灯片讲稿。
所有检查点的答案。
所有练习的答案,包括奇数编号和偶数编号。
一些编程挑战的解决方案。
各章所有的例子、练习和检查点需要的HTML、JavaScript、XML和PHP程序。
视频课件。
所有例子、操作实践和练习需要的图像、文本文件和其他外部文件。
各章试题库。
要获取这些资料,可以访问网站www.pearsonhighered.com/irc或者与Pearson Education销售代理联系。
致谢
正如没有最恰当的方法教程序设计一样,也没有最恰当的方法写程序设计的书。在写作本书时,我很幸运得到了以下经验丰富的老师提供的不同观点和很多有帮助的建议:
Brenda Terry,富勤顿学院
Leong Lee,奥斯汀佩伊州立大学
Dave Wilson,帕克兰学院
Tony Pittarese,东田纳西州立大学
Dave Sciuto,马萨诸塞大学卢维尔分校
Janos T. Fustos,丹佛大都会州立大学
Sam Sultan,纽约大学
Nancy McCurdy,圣达菲学院
特别感谢专业软件/Web开发师Anton Drake在为第10~12章开发Greg's Gambits和Carla's Classroom网站方面提供的无价帮助。Anton的贡献在于充当XML、PHP和MySQL内容的顾问并且协助编写了这几章的代码。
我非常荣幸与如此可爱的Pearson支持团队合作。Matt GolDstein为本书的出版提供机会,我将永远感谢他。Kathy Cantwell精炼了本书文字。Marilyn Lloyd和Scott Disanno一直支持我写作。Greg Dulles和Kayla Smith-Tarbox帮我寻找图像,从而使网站具有活力。Jenah Blitz-Stoehr亲自回答我的所有普通问题。Pearson的每个人都是友好亲切、乐于助人和鼓舞人心的,作者提出的要求都会一一满足。
我也要感谢Anton和宠物的耐心让我长时间敲打键盘,感谢全家对我的爱和鼓励让我花费大量时间做我热爱的事情——写作。

——Elizabeth Drake

上架指导

计算机\程序设计

封底文字

JavaScript 是 Web 上的一种功能强大的编程语言,用于开发交互式网页。它不仅可以直接应用于 HTML 文档以获得交互效果或其他动态效果,而且可以运行于服务器端,从而替代传统的 CGI 程序。JavaScript 符合 ECMAScript 语言标准,支持多种程序设计风格。
本书是一本面向入门级 Web 程序员的教材,与常见的JavaScript书籍不同,本书不要求读者有任何的程序设计基础。本书内容由浅入深,既包含 JavaScript 的基本编程技术,也涵盖 JavaScript 与 XML、PHP、MySQL 的协同编程方法。本书提供近300个案例,都配有可以直接运行的源代码,读者可在此基础上进行学习或者二次开发。本书的学习资源丰富,无论是学生还是教师,都能方便地用本书进行教和学。
主要特点:
 笔法细腻、循序渐进。本书详细讲解了程序设计的基本概念,对每个示例程序和代码都有详细的注释和讲解。
 示例丰富、贯穿始终。本书为每个新知识点提供了相应的例子,有两个完整的案例(一个游戏网站和一个教学网站)贯穿全书,增强了趣味性和实用性。
 立足基础、兼顾全局。本书主要讲解基于 JavaScrpt 的 Web 客户端编程技术,简单介绍了 Web 服务器端开发技术 PHP 和 MySQL,使学生能够很自然地使用 JavaScript ,理解与服务器端技术的交互性。

作者简介

(美)Elizabeth Drake 著:Elizabeth Drake 具有30多年各类高等教育的教学经验,从社区学院到大学的不同学科(包括计算机科学、物理、数学和人类学)课程。她一直在讲授计算机类课程,主要是在美国佛罗里达的圣达菲学院。她为圣达菲学院开发了Web编程课程,目前正在开发移动应用课程体系。她还编写出版了程序设计逻辑和Javascript程序设计方面的教材。

译者简介

阮文江 译:暂无简介

译者序

JavaScript是Web上的一种功能强大的编程语言,用于开发交互式网页。它不仅可以直接应用于HTML文档以获得交互效果或其他动态效果,而且还可以运行于服务器端来替代传统的CGI程序。此外,JavaScript符合ECMAScript语言标准,支持多种程序设计风格。
本书是一本面向入门级Web程序员的教材。书中内容由浅入深,既包含JavaScript的基本编程技术,也涵盖JavaScript与XML、PHP、MySQL的协同编程方法。与国内同类书籍相比,本书具有以下特点:
1)笔法细腻、循序渐进。本书详细讲解了程序设计的基本概念(如变量、选择语句和循环语句等),并且几乎对每个示例程序和代码都有详细的注释和讲解,从而使本书适用于从来没有或者略有编程经验的学生。
2)示例丰富、贯穿始终。本书几乎为每个新知识点都配有相应的例子,并且两个完整的案例(一个游戏网站和一个教学网站)贯穿全书各章正文和练习,从而增强趣味性和实
用性。
3)立足基础、兼顾全局。本书主要讲解基于JavaScript的Web客户端编程技术,此外也简单介绍了Web服务器端开发技术PHP和MySQL,使学生能够很自然地使用JavaScript并且理解与服务器端技术的交互性。
本书可用作高等院校本、专科各专业JavaScript程序设计、Web程序设计和动态网页制作等课程的教材。
由于译者水平有限,译文中疏漏和错误难免,恳请读者批评指正。

译者
于中山大学

图书目录

译者序
前 言
第0章 计算机基础
第1章 JavaScript程序设计基础 1
1.1 什么是程序设计 2
1.1.1 通用问题解决策略 2
1.1.2 程序开发周期 3
1.2 程序的结构 4
1.2.1 输入-处理-输出 4
1.2.2 控制结构 6
1.3 数据类型和对数据的操作 7
1.3.1 数字型数据 7
1.3.2 字符串型数据 7
1.3.3 布尔型数据 8
1.3.4 变量和命名常量 8
1.3.5 赋值语句 9
1.3.6 对数据的操作 10
1.4 解决问题:逻辑思考的重要性 13
1.4.1 伪代码 14
1.4.2 流程图 14
1.5 网页中的JavaScript 17
1.5.1 标签对 17
1.5.2 标签对 17
1.5.3 在网页中的JavaScript 17
1.5.4 在文档区域中的JavaScript 18
1.5.5 的onload事件 19
1.6 对象简介 21
1.6.1 对象是什么 21
1.6.2 属性和方法 22
1.6.3 document(文档)对象 23
1.6.4 点标记 24
1.6.5 write( )方法 24
1.6.6 getElementById( )方法和innerHTML属性 26
1.6.7 open()和close()方法 28
1.7 JavaScript函数和事件 31
1.7.1 JavaScript函数 31
1.7.2 JavaScript事件 35
1.8 操作实践 38
1.8.1 Greg's Gambits:创建About You页面 38
1.8.2 Carla's Classroom:创建About You页面 45
1.9 复习与练习 51
主要术语 51
练习 52
编程挑战 55
案例研究 56
第2章 编程基石:变量和操作符 59
2.1 变量是什么 60
2.1.1 内存单元 60
2.1.2 变量名 60
2.1.3 命名建议 61
2.1.4 声明变量 61
2.2 数据类型 62
2.2.1 弱类型语言 63
2.2.2 数字 63
2.2.3 字符串和字符 64
2.2.4 命名常量 65
2.3 算术操作符和一些重要的函数 65
2.3.1 模操作符 66
2.3.2 操作优先级 66
2.3.3 连接操作符 68
2.3.4 分析整数和浮点数 68
2.4 关系操作符 70
2.4.1 ASCII 码 70
2.4.2 关系操作符 72
2.5 逻辑操作符和条件操作符 75
2.5.1 逻辑操作符 75
2.5.2 布尔逻辑和布尔操作符 76
2.5.3 逻辑操作符的操作次序 77
2.5.4 条件操作符 78
2.6 操作实践 80
2.6.1 Greg's Gambits:创建填字游戏 80
2.6.2 Carla's Classroom:拼写课 85
2.7 复习与练习 94
主要术语 94
练习 94
编程挑战 96
案例研究 98
第3章 做出判断:选择结构 100
3.1 选择结构类型 100
3.2 单路选择结构:if语句 102
3.2.1 关于测试条件的说明 103
3.2.2 关于花括号的说明 103
3.3 二路选择结构:if ... else语句 105
3.4 嵌套选择结构 108
3.5 复合条件 111
3.5.1 组合关系和逻辑操作符 111
3.6 多路选择结构 116
3.6.1 if ... else if ...结构 116
3.6.2 错误检查:只是开始 117
3.6.3 switch语句 120
3.7 操作实践 124
3.7.1 Greg's Gambits:Vadoma夫人知道所有事情 124
3.7.2 Carla's Classroom:算术课 132
3.8 复习与练习 144
主要术语 144
练习 144
编程挑战 147
案例研究 149
第4章 周而复始:重复结构 152
4.1 计算机不厌烦重复 153
4.1.1 循环基本概念 153
4.2 循环的类型 156
4.2.1 前测循环和后测循环 156
4.2.2 前测while循环 157
4.2.3 后测do...while循环 162
4.2.4 哨兵控制循环 165
4.2.5 计数器控制循环 167
4.3 for循环 170
4.3.1 for语句 171
4.3.2 初值 171
4.3.3 测试条件 171
4.3.4 递增/递减语句 172
4.3.5 谨慎的豆子计数器 172
4.4 数据验证 176
4.4.1 isNaN()方法 177
4.4.2 检查整数 177
4.4.3 使用复合条件进行数据验证 178
4.4.4 charAt()方法 179
4.4.5 length属性 180
4.5 操作实践 182
4.5.1 Greg's Gambits:编码秘密信息 182
4.5.2 Carla's Classroom:高级算术课 190
4.6 复习与练习 202
主要术语 202
练习 202
编程挑战 205
案例研究 206
第5章 高级判断和循环 210
5.1 一些简单的教学统计分析 211
5.1.1 把所有数加起来 211
5.1.2 计算平均数 212
5.1.3 范围 213
5.1.4 奇数和偶数 214
5.1.5 整数准确性:Math方法 216
5.2 继续或者不继续 220
5.2.1 break语句 220
5.2.2 continue语句 228
5.3 循环嵌套 230
5.3.1 台式检查 230
5.3.2 嵌套循环的不同方法 232
5.4 用循环绘制形状和图案 236
5.4.1 绘制形状 237
5.4.2 使用循环创建图案 239
5.4.3 鼠标事件 240
5.5 操作实践 245
5.5.1 Greg's Gambits:巫师和巨怪之间的战斗 245
5.5.2 Carla's Classroom:语法课 257
5.6 复习与练习 264
主要术语 264
练习 264
编程挑战 267
案例研究 268
第6章  表单和表单控件 271
6.1 表单是什么 272
6.1.1 最基本的表单 272
6.1.2 返回表单提交的信息 274
6.2 表单控件 275
6.2.1 单选按钮 275
6.2.2 复选框 278
6.2.3 文本框 282
6.2.4 文本区框 286
6.3 隐藏字段和密码 291
6.3.1 隐藏的表单元素 291
6.3.2 密码表单元素 292
6.4 选择列表及其他 301
6.4.1 选择列表 301
6.4.2 表单元素的高级属性 305
6.5 操作实践 310
6.5.1 Greg's Gambits:玩家信息和物品目录 310
6.5.2 Carla's Classroom:Carla的进度报告表单 321
6.6 复习与练习 330
主要术语 330
练习 331
编程挑战 332
案例研究 333
第7章 代码简洁化:函数和JavaScript源文件 336
7.1 函数 337
7.1.1 内置函数 337
7.1.2 用户自定义函数 338
7.2 变量作用域 343
7.2.1 全局变量 343
7.2.2 局部变量 345
7.3 将信息传递给函数 346
7.3.1 将实参传递给形参 347
7.4 对象和面向对象概念 355
7.4.1 Math对象 355
7.4.2 其他JavaScript对象 356
7.4.3 Date对象 358
7.5 JavaScript源文件 360
7.5.1 更聪明地工作,而不是更努力地工作 361
7.5.2 创建和访问JavaScript源文件 361
7.5.3 创建函数库 367
7.6 操作实践 368
7.6.1 Greg's Gambits:悬吊人猜字游戏 368
7.6.2 Carla's Classroom:阅读理解课 378
7.7 复习与练习 386
主要术语 386
练习 387
编程挑战 389
案例研究 390
第8章 数组 394
8.1 一维数组 394
8.1.1 在JavaScript中创建数组 395
8.1.2 Array对象 396
8.1.3 关于数组名的说明 396
8.2 填充数组 398
8.2.1 直接装载数组 398
8.2.2 交互地装载数组 399
8.2.3 显示数组 400
8.3 平行数组 401
8.3.1 为什么使用数组 403
8.4 使用Array方法 405
8.4.1 push()方法 405
8.4.2 length属性可用于获取数组的长度 406
8.4.3 unshift()方法 407
8.4.4 splice()方法 408
8.5 多维数组 415
8.5.1 二维数组 415
8.5.2 声明和填充二维数组 416
8.6 操作实践 419
8.6.1 Greg's Gambits:数字拼图游戏15 419
8.6.2 Carla's Classroom:图像和想象 430
8.7 复习与练习 438
主要术语 438
练习 438
编程挑战 440
案例研究 442
第9章 搜索和排序 444
9.1 排序数组 445
9.1.1 sort()方法 445
9.1.2 用sort()方法排序数字 446
9.1.3 reverse()方法 447
9.2 冒泡排序 449
9.2.1 交换值 449
9.2.2 使用冒泡排序算法 450
9.2.3 传递数组 454
9.3 选择排序 456
9.4 搜索数组:线性搜索 462
9.4.1 线性搜索 462
9.4.2 线性搜索平行数组 465
9.5 搜索数组:二分搜索 468
9.5.1 二分搜索 469
9.5.2 让编程更容易:indexOf()方法 475
9.6 操作实践 477
9.6.1 Greg's Gambits:Greg的拼字游戏 477
9.6.2 Carla's Classroom:因数分解课 486
9.7 复习与练习 500
主要术语 500
练习 500
编程挑战 503
案例研究 505
第10章 文档对象模型和XML 507
10.1 文档对象模型 508
10.1.1 DOM简史 508
10.1.2 DOM节点和树 508
10.1.3 家族:父子模型 510
10.1.4 创建和插入元素 511
10.1.5 替换和除去元素 513
10.2 与定时器和样式一起使用DOM方法 516
10.2.1 setAttribute()和getAttribute()方法 516
10.2.2 setInterval()和clearInterval()方法 519
10.3 XML基础 523
10.3.1 XML是什么 523
10.3.2 为什么需要XML 523
10.3.3 XML组件 524
10.3.4 XML语法分析器和DTD 527
10.4 添加样式和XSL转换 530
10.4.1 与XML文档一起使用层叠样式表 531
10.4.2 可扩展样式表语言(XSL) 533
10.5 XML命名空间和模式 537
10.5.1 XML命名空间 537
10.5.2 XML模式 541
10.5.3 XML模式数据类型 542
10.5.4 创建XML模式 542
10.6 操作实践 545
10.6.1 Greg's Gambits:Greg的头像 545
10.6.2 Carla's Classroom:拼写课 555
10.7 复习与练习 562
主要术语 562
练习 563
编程挑战 565
案例研究 566
第11章 PHP概述 570
11.1 PHP简史 571
11.1.1 服务器做什么 571
11.1.2 Apache HTTP服务器、MySQL和PHP 572
11.2 XAMPP 573
11.2.1 安装XAMPP 574
11.2.2 开始使用 574
11.3 PHP基础 577
11.3.1 PHP文件名、htdocs文件夹和浏览PHP页面 578
11.3.2 变量和方法 579
11.3.3 PHP关键字 584
11.3.4 操作符 584
11.4 使用条件和循环语句 589
11.4.1 做出判断:if结构 589
11.4.2 循环往复:重复和循环 592
11.5 数组和字符串 596
11.5.1 数组 596
11.5.2 为什么要学习PHP 599
11.5.3 处理字符串 600
11.6 操作实践 605
11.6.1 Greg's Gambits:PHP欢迎信息 606
11.6.2 Carla's Classroom:使用PHP获取提示信息 614
11.7 复习与练习 622
主要术语 622
练习 623
编程挑战 625
案例研究 627
第12章 与Cookie和MySQL一起使用PHP 630
12.1 Cookie 631
12.1.1 Cookie类型 631
12.1.2 写Cookie 632
12.2 数据库服务器:MySQL 640
12.2.1 MySQL概述 640
12.2.2 建立MySQL用户账户 640
12.2.3 数据库结构 643
12.2.4 构建小型商务数据库 644
12.2.5 用phpMyAdmin创建数据库 646
12.3 通过Web填充数据库 649
12.3.1 网页表单 650
12.4 使用PHP发送含数据库信息的电子邮件 656
12.4.1 表单 656
12.5 操作实践 660
12.5.1 Greg's Gambits:创建账户和验证登录 660
12.5.2 Carla's Classroom:使用 PHP通过电子邮件发送学生报告 677
12.6 复习与练习 686
主要术语 686
练习 687
编程挑战 689
案例研究 690
附录A ASCII字符 692
附录B 操作符优先级 696
附录C HTML字符和实体 698
附录D JavaScript对象 700
附录E jQuery 709
附录F DOM属性、方法和事件 711
附录G PHP保留字 714
附录H PHP MySQL函数 717
附录I 检查点答案 719

教学资源推荐
作者: 刘燕君,刘振安,孙忱
作者: [美]克洛维斯· L.汤多(Clovis L. Tondo) 斯科特· E.吉姆佩尔(Scott E. Gimpel)著
作者: (美)Y.Daniel Liang 著 阿姆斯特朗亚特兰大州立大学
作者: 辛运帏 高宁 徐文拴 等编著
参考读物推荐
作者: [美]艾德里安·奥斯特洛夫斯基(Adrian Ostrowski),[波]彼得亚雷·加奇科夫斯基(Piotr Gaczkowski) 著
作者: 徐顺发 编著
作者: (美)Vlada Matena Beth Stearns