本书介绍了JavaScript脚本语言的基础知识和实用技术。全书共11章,内容包括JavaScript概述、JavaScript编程基础、流程控制语句、对象编程、本地对象、浏览器对象(BOM)、文档对象(DOM)、事件处理、函数特性、数据交换格式与数据持久化等技术,并应用本书所讨论的技术内容制作一个服饰设计网站。
本书配有大量的示例和练习,介绍详略得当,所介绍的技术具有很强的实用性、前瞻性,符合市场就业需求。读者通过本书的学习可以快速掌握JavaScript编程基本功。
第1章 JavaScript程序概述
1.1 学习JavaScript程序设计
1.2 JavaScript简介
1.3 开发JavaScript应用程序
【课堂案例1-1】:第1个JavaScript程序
第2章 程序的构成——函数
2.1 函数的使用
【课堂案例2-1】:在网页上输出消息
【课堂案例2-2】:在网页上显示图片
【课堂案例2-3】:在网页中播放视频,显示视频信息
2.2 函数的参数
【课堂案例2-4】:使用参数传递姓氏和名字,在网页上输出姓名
【课堂案例2-5】:定义函数area(),用于计算矩形面积
【课堂案例2-6】:按照参数显示图片
2.3 函数的返回值 第1章 JavaScript程序概述
1.1 学习JavaScript程序设计
1.2 JavaScript简介
1.3 开发JavaScript应用程序
【课堂案例1-1】:第1个JavaScript程序
第2章 程序的构成——函数
2.1 函数的使用
【课堂案例2-1】:在网页上输出消息
【课堂案例2-2】:在网页上显示图片
【课堂案例2-3】:在网页中播放视频,显示视频信息
2.2 函数的参数
【课堂案例2-4】:使用参数传递姓氏和名字,在网页上输出姓名
【课堂案例2-5】:定义函数area(),用于计算矩形面积
【课堂案例2-6】:按照参数显示图片
2.3 函数的返回值
【课堂案例2-7】:计算任意3个数的平均值
【课堂案例2-8】:测试return语句功能
【课堂案例2-9】:制作简易杏仁巧克力
【课堂案例2-10】:计算实发工资
2.4 函数的嵌套定义
【课堂案例2-11】:计算两个圆的面积之和
*2.5 高级函数特性
【课堂案例2-12】:调用匿名函数
【课堂案例2-13】:使用匿名函数限制变量的作用域
【课堂案例2-14】:使用闭包(closure)特性调整页面的字号
【课堂案例2-15】:数组作参数,计算购物总金额
【课堂案例2-16】:使用参数对象Arguments来计算任意n个数的和
【课堂案例2-17】:使用函数对象编写函数测试页面
【课堂案例2-18】:使用函数递归,输出递增的数字序列
2.6 本章练习
第3章 JavaScript语言基础
3.1 基本数据类型
【课堂案例3-1】:数据类型测试及转换
3.2 变量和常量
【课堂案例3-2】:变量的定义和使用
【课堂案例3-3】:变量的赋值
【课堂案例3-4】:变量的作用域
【课堂案例3-5】:使用常量PI,转换角度与弧度
3.3 运算符和表达式
【课堂案例3-6】:算术运算符使用示例
【课堂案例3-7】:赋值运算符使用示例
【课堂案例3-8】:使用关系运算符、条件运算符判断用户输入的年龄
【课堂案例3-9】:逻辑运算符使用示例
【课堂案例3-10】:字符串运算符示例
【课堂案例3-11】:位运算符示例
【课堂案例3-12】:使用typeof运算符检测数据类型
3.4 本章练习
第4章 JavaScript语句
4.1 JavaScript语句和基本程序结构
4.2 选择语句
【课堂案例4-1】:使用单分支if语句判断两个数字中的较大数
【课堂案例4-2】:使用if语句将两个数字按从小到大的顺序输出
【课堂案例4-3】:使用if语句检查参数值的有效性
【课堂案例4-4】:使用if…else语句计算数字的绝对值
【课堂案例4-5】:使用if…else语句判断成绩是否及格
【课堂案例4-6】:使用if嵌套删除文件(伪代码)
【课堂案例4-7】:使用switch语句查询简单的日程表
4.3 循环语句
【课堂案例4-8】:使用while语句输出递增的数字序列
【课堂案例4-9】:使用while语句在网页上显示一组图片
【课堂案例4-10】:使用do…while语句计算100到500之间所有整数的和
【课堂案例4-11】:使用do…while语句计算m到n之间所有偶数的和
【课堂案例4-12】:使用for语句输出1到n之间所有的整数
4.4 循环控制语句
【课堂案例4-13】:使用break语句计算最小公倍数
【课堂案例4-14】:continue语句演示
4.5 循环嵌套
【课堂案例4-15】:使用二重循环嵌套在页面上显示五子棋棋盘
4.6 异常处理
【课堂案例4-16】:使用throw语句抛出异常
【课堂案例4-17】:使用try…catch()…finally处理异常
4.7 本章练习
第5章 基于原型的面向对象编程
5.1 对象编程概述
5.2 自定义对象的创建和使用
【课堂案例5-1】:使用Object创建自定义对象book,用于描述图书信息
【课堂案例5-2】:使用Object创建自定义对象calc,用于简单数学计算
【课堂案例5-3】:使用构造函数创建自定义对象phone,用于描述电话信息
【课堂案例5-4】:创建图片对象,使用this访问对象自身的属性和方法
【课堂案例5-5】:使用with简化对象操作
【课堂案例5-6】:使用instanceof运算符判断对象类型
【课堂案例5-7】:使用instanceof运算符检查参数的类型
【课堂案例5-8】:使用for…in 循环遍历对象成员
【课堂案例5-9】:使用私有对象属性实现数据隐藏
【课堂案例5-10】:为属性添加赋值方法(Setter)和取值方法(Getter)
【课堂案例5-11】:使用原型(prototype)扩展对象类型
5.3 对象继承
【课堂案例5-12】:使用call()方法实现对象继承
【课堂案例5-13】:使用原型链(Prototype Chain)实现对象继承
5.4 定义对象的不同方式
【课堂案例5-14】:使用工厂函数方式创建对象
【课堂案例5-15】:使用混合的构造函数/原型方式创建对象
【课堂案例5-16】:使用动态原型方式创建对象
5.5 本章练习
第6章 本地对象
6.1 本地对象概述
6.2 Boolean对象
【课堂案例6-1】:比较布尔值与布尔对象的区别
【课堂案例6-2】:复制布尔对象
6.3 Number对象
【课堂案例6-3】:使用Number对象获取数值极限
【课堂案例6-4】:将数字转换成字符串
【课堂案例6-5】:设置数值精确度
【课堂案例6-6】:数值进制转换
6.4 String对象
【课堂案例6-7】:合成新的字符串
【课堂案例6-8】:显示字符串的Unicode编码
【课堂案例6-9】:截取字符串内容
【课堂案例6-10】:在字符串中精确查找指定内容
【课堂案例6-11】:在字符串中进行模糊查找
【课堂案例6-12】:精确查找替换字符串内容
【课堂案例6-13】:将字符串分割成数组,提取英文句子中前3个单词
【课堂案例6-14】:转换字母大小写
【课堂案例6-15】:为字符串添加样式
6.5 RegExp对象
【课堂案例6-16】:使用正则表达式替换字符串中的文本
【课堂案例6-17】:使用正则表达式验证电子邮箱格式
【课堂案例6-18】:使用正则表达式交换单词的位置
6.6 Array对象
【课堂案例6-19】:使用Array对象创建数组
【课堂案例6-20】:使用for…in循环遍历数组,并找到最大值
【课堂案例6-21】:对数组进行排序
【课堂案例6-22】:使用Array提供的方法添加、删除或替换数组元素
【课堂案例6-23】:将数组转换成字符串
【课堂案例6-24】:使用现有数组元素生成新数组
【课堂案例6-25】:使用回调函数处理数组元素
【课堂案例6-26】:使用二维数组
6.7 Math对象
【课堂案例6-27】:使用Math对象完成数学计算1
【课堂案例6-28】:使用Math对象完成数学计算2
6.8 Date对象
【课堂案例6-29】:创建Date对象
【课堂案例6-30】:使用Date对象计算程序运行时间
【课堂案例6-31】:使用Date对象的方法设置/获取日期时间信息
6.9 Error对象
【课堂案例6-32】:使用自定义Error对象抛出异常
【课堂案例6-33】:处理系统抛出的异常
6.10 全局对象
【课堂案例6-34】:使用全局方法
6.11 本章练习
第7章 浏览器对象模型(BOM)
7.1 浏览器对象模型概述
7.2 window对象
【课堂案例7-1】:获取浏览器窗口的位置和大小
【课堂案例7-2】:控制浏览器窗口的位置和大小
【课堂案例7-3】:使用模式对话框
【课堂案例7-4】:制作简单的数字时钟
【课堂案例7-5】:在网页中实现滚动屏幕功能
7.3 navigator对象
【课堂案例7-6】:获取浏览器及操作系统的相关信息
【课堂案例7-7】:获取当前浏览器安装的插件信息
7.4 location对象
【课堂案例7-8】:获取浏览器URL的相关信息
【课堂案例7-9】:使用location对象实现页面跳转和刷新
【课堂案例7-10】:创建页面导航
7.5 history对象
【课堂案例7-11】:访问历史记录中的URL
7.6 screen对象
【课堂案例7-12】:获取用户屏幕信息
【课堂案例7-13】:根据用户屏幕信息切换网页显示效果
7.7 本章练习
第8章 HTML文档对象模型(DOM)
8.1 文档对象模型概述
8.2 DOM核心接口
【课堂案例8-1】:获取DOM树中的节点信息
【课堂案例8-2】:删除DOM树中的节点
【课堂案例8-3】:在DOM树中添加子节点
【课堂案例8-4】:替换DOM树中的节点
【课堂案例8-5】:复制DOM树中的节点
【课堂案例8-6】:获取节点的属性
【课堂案例8-7】:控制文本节点
【课堂案例8-8】:提取网页中的超链接地址
8.3 DOM HTML
【课堂案例8-9】:获取文档信息
【课堂案例8-10】:修改文档中的链接
【课堂案例8-11】:操作文档中的表格
【课堂案例8-12】:获取文本框中用户输入的内容
【课堂案例8-13】:获取单选框用户选择的内容
【课堂案例8-14】:获取复选框用户选择的内容
【课堂案例8-15】:控制下拉菜单
【课堂案例8-16】:判断用户选取的文件类型
【课堂案例8-17】:限制用户使用表单元素
【课堂案例8-18】:验证表单数据
【课堂案例8-19】:为所有段落加边框
【课堂案例8-20】:选项卡效果
【课堂案例8-21】:Web相册
【课堂案例8-22】:修改网页背景色
【课堂案例8-23】:显示/隐藏页面元素
【课堂案例8-24】:覆盖显示图片
【课堂案例8-25】:在网页中绘图1
【课堂案例8-26】:在网页中绘图2
8.4 本章练习
第9章 事件(Event)处理
9.1 事件处理概述
9.2 基于HTML属性的事件处理方法
【课堂案例9-1】:文档事件
【课堂案例9-2】:鼠标事件
【课堂案例9-3】:获得/失去焦点事件
【课堂案例9-4】:键盘事件
【课堂案例9-5】:onchange事件
【课堂案例9-6】:使用this作参数
【课堂案例9-7】:为事件设置响应函数
9.3 DOM EVENT事件处理
【课堂案例9-8】:注册事件监听器,设置背景图片
【课堂案例9-9】:注册多个事件监听器,实现简易加法计算器
【课堂案例9-10】:事件指派
【课堂案例9-11】:显示鼠标位置
【课堂案例9-12】:创建快捷菜单,缩放图片
【课堂案例9-13】:创建快捷菜单,缩放图片
9.4 本章练习
第10章 常用的数据交换格式和数据存储技术
10.1 XML文档
【课堂案例10-1】:同步访问XML文档,获取图书信息
【课堂案例10-2】:异步访问XML文档,设置段落样式
【课堂案例10-3】:XML生成树状菜单
10.2 JSON
【课堂案例10-4】:使用JSON对象
【课堂案例10-5】:访问JSON对象中的对象
【课堂案例10-6】:使用JSON数组
【课堂案例10-7】:访问JSON对象数组
10.3 数据存储
【课堂案例10-8】:使用cookie存储用户账户信息
【课堂案例10-9】:使用localStorage存储数据
【课堂案例10-10】:使用sessionStorage存储数据
10.3 本章练习
第11章 综合练习——服饰设计网站
11.1 网站整体说明
11.2 JavaScript程序说明
技术背景
JavaScript是一种广泛用于客户端网页开发的脚本语言,早期主要用来给HTML网页添加动态功能。随着Web开发技术领域的迅速发展,JavaScript以其跨平台、容易上手等优势大行其道。有些特殊功能(如AJAX)必须依赖JavaScript在客户端进行支持。随着Google-V8引擎和Node.js框架的发展,JavaScript逐渐被用来编写服务器端程序。HTML5和移动设备的广泛应用,也会使JavaScript的前景更加绚丽。
就业需要
JavaScript脚本语言是开发Web应用程序所必备的技术。随着HTML5的广泛应用,就业岗位对于JavaScript的需求会越来越强烈。JavaScript骤然变成了聚光灯下的明星语言,越来越多的开发者加入到JavaScript阵营。下图是Indeed.com对Web开发技术岗位需求的统计。
由趋势分析图可以看出,JavaScript的就业岗位需求量远远超过其他语言。
本书编写目的
很多高职高专院校已将JavaScript作为一门重要的程序设计课程。本书在编写过程中力求突出高职教育的特点,以“应用”为主旨和特征,以“实践教学”为主要目的,以“培养学生的专业技术应用能力和职业操作技能”为教材编写重点,注重对学生编程思想的启发和培养,提高他们的分析问题、解决问题的能力,将教学内容与职业培养目标相结合。通过本书的学习,读者可以掌握如下技能:
JavaScript语法基础;
处理JavaScript内置对象,如String、Array、Number、Math、RegExp等;
使用BOM、DOM控制文档元素;
处理网页事件;
使用不同的方式持久化数据;
访问常见元数据,如XML、JSON。
本书主要内容
本书所讨论的内容包括JavaScript基本知识和实用技术,以及不断发展、与时俱进的新技术、新应用。内容讲解由浅入深、循序渐进,将理论知识与实践相结合,案例选取实用性强、针对性强。
第1章介绍了JavaScript脚本语言的作用和特点,如何学习JavaScript语言,如何选择适合自己的开发工具,如何添加注释,如何选择浏览器,如何将JavaScript嵌入到HTML页面并运行调试,以及如何养成良好的代码书写规范。
第2章介绍了JavaScript函数的基本用法,包括函数的定义及调用、参数的用法、返回值的用法、函数编写规则。函数是JavaScript的灵魂,将函数放在本书第2章讲述,以便让后面章节的课堂案例及练习使用函数实现,使读者切实掌握函数的用法。
第3章介绍了JavaScript编程的基本元素,包括基本数据类型、常量、变量、运算符、表达式以及类型转换。
第4章介绍了JavaScript流程控制语句的使用,掌握选择语句、循环语句、循环控制语句是任何程序设计语言的基本功。
第5章介绍了如何使用JavaScript自定义对象,如何私有化数据成员,使用this关键字访问自身数据,使用with关键字简化对象访问,使用for...in循环访问对象属性,以及ECMAScript5的对象保护功能等。
第6章介绍了JavaScript本地对象,包括String、Number、Boolean、Array、Date、RegExp、Error、Global、Math对象的用法。JavaScript内置了很多对象,这使得开发工作轻松了许多。
第7章介绍了浏览器对象模型(BOM),包括window、history、screen、location、navigator对象的用法。通过本章的学习,读者可以掌握创建新的浏览器窗口、获取客户机屏幕信息、获取浏览器相关信息。
第8章介绍了文档对象模型(DOM),包括DOM核心接口的定义、DOMHTML接口的定义、常见页面元素的操作、表单元素的操作、DOM节点操作方法。通过本章的学习,读者可以通过DOM对象控制页面上的任何内容,包括修改元素属性、验证表单、使用画布元素等。
第9章介绍了JavaScript事件处理,包括事件触发、事件对象。通过本章的学习,读者可以处理常见事件,了解DOMEvent接口,访问事件对象。
第10章介绍了几种元数据存储格式以及数据持久化技术,包括XML格式、JSON格式,cookie、localStorage、sessionStorage对象。通过本章的学习,读者可以使用JavaScript访问XML文档、访问JSON数据,使用cookie、localStorage和sessionStorage对象存储数据。
第11章综合运用Web开发技术来制作一个完整的服饰设计网站,使用JavaScript为网站添加动态、交互效果,验证表单数据,通过实践提高读者编程技法。
本书特色
1.符合初学者学习特点
本书实例丰富、技术实用、结构安排合理,知识讲解循序渐进,对实例的分析清晰到位,让读者快速步入JavaScript开发殿堂。
2.适合学校组织教学的需要
根据教学需要,设计有针对性的练习题,注重启发读者编程思维。课堂案例和练习准确地覆盖学习目标和知识要点,方便教师设计教学过程,方便学生了解学习目的。
3.内容新颖,具有技术前瞻性
本书内容新颖多样、概念清晰、实用性强,涵盖当前主流JavaScript应用开发技术。许多其他同类教材所介绍的技术内容比较基础,技术更新比市场需求慢半拍。而本书更注重技术的实用性以及前瞻性,介绍了许多当前主流,或即将流行的新技术。
使用方法及课时分配
本书中有大量精彩的范例、练习题,这些素材来自作者多年来的软件开发、教育教学经验。本书内容在实际教学过程中运用多年,效果良好。计划学时为108学时,建议将课时分为讲解与实训两部分。
著作者分工
本书由曹维明担任主编,编写本书第6章至第11章内容。刘燕、吴剑文、赵卉担任副主编,编写本书第1章至第4章的内容,白建华参与编写了第5章的内容。
在本书编写过程中,我们本着科学、严谨的态度,力求精益求精,但错误、疏漏之处在所难免,请广大读者批评指正。
编者