
本书介绍了JavaScript脚本语言的基础知识和实用技术。全书共11章,内容包括JavaScript概述、JavaScript编程基础、流程控制语句、对象编程、本地对象、浏览器对象(BOM)、文档对象(DOM)、事件处理、函数特性、数据交换格式与数据持久化等技术,并应用本书所讨论的技术内容制作一个服饰设计网站。 本书配有大量的示例和练习,介绍详略得当,所介绍的技术具有很强的实用性、前瞻性,符合市场就业需求。读者通过本书的学习可以快速掌握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核心接口的定义、DOM HTML接口的定义、常见页面元素的操作、表单元素的操作、DOM节点操作方法。通过本章的学习,读者可以通过DOM对象控制页面上的任何内容,包括修改元素属性、验证表单、使用画布元素等。 第9章介绍了JavaScript事件处理,包括事件触发、事件对象。通过本章的学习,读者可以处理常见事件,了解DOM Event接口,访问事件对象。 第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章的内容。 在本书编写过程中,我们本着科学、严谨的态度,力求精益求精,但错误、疏漏之处在所难免,请广大读者批评指正。 编 者
第1章 JavaScript程序概述 /1 1.1 学习JavaScript程序设计 /1 1.2 JavaScript简介 /2 1.3 开发JavaScript应用程序 /5 【课堂案例1-1】:第1个JavaScript程序 /7 第2章 程序的构成——函数 /10 2.1 函数的使用 /10 【课堂案例2-1】:在网页上输出消息 /10 【课堂案例2-2】:在网页上显示图片 /11 【课堂案例2-3】:在网页中播放视频,显示视频信息 /12 2.2 函数的参数 /13 【课堂案例2-4】:使用参数传递姓氏和名字,在网页上输出姓名 /14 【课堂案例2-5】:定义函数area(),用于计算矩形面积 /15 【课堂案例2-6】:按照参数显示图片 /16 2.3 函数的返回值 /17 【课堂案例2-7】:计算任意3个数的平均值 /17 【课堂案例2-8】:测试return语句功能 /18 【课堂案例2-9】:制作简易杏仁巧克力 /19 【课堂案例2-10】:计算实发工资 /21 2.4 函数的嵌套定义 /21 【课堂案例2-11】:计算两个圆的面积之和 /22 *2.5 高级函数特性 /22 【课堂案例2-12】:调用匿名函数 /22 【课堂案例2-13】:使用匿名函数限制变量的作用域 /24 【课堂案例2-14】:使用闭包(closure)特性调整页面的字号 /25 【课堂案例2-15】:数组作参数,计算购物总金额 /28 【课堂案例2-16】:使用参数对象Arguments来计算任意n个数的和 /29 【课堂案例2-17】:使用函数对象编写函数测试页面 /30 【课堂案例2-18】:使用函数递归,输出递增的数字序列 /32 2.6 本章练习 /33 第3章 JavaScript语言基础 /37 3.1 基本数据类型 /37 【课堂案例3-1】:数据类型测试及转换 /40 3.2 变量和常量 /41 【课堂案例3-2】:变量的定义和使用 /41 【课堂案例3-3】:变量的赋值 /42 【课堂案例3-4】:变量的作用域 /43 【课堂案例3-5】:使用常量PI,转换角度与弧度 /45 3.3 运算符和表达式 /46 【课堂案例3-6】:算术运算符使用示例 /46 【课堂案例3-7】:赋值运算符使用示例 /48 【课堂案例3-8】:使用关系运算符、条件运算符判断用户输入的年龄 /50 【课堂案例3-9】:逻辑运算符使用示例 /51 【课堂案例3-10】:字符串运算符示例 /52 【课堂案例3-11】:位运算符示例 /53 【课堂案例3-12】:使用typeof运算符检测数据类型 /55 3.4 本章练习 /55 第4章 JavaScript语句 /59 4.1 JavaScript语句和基本程序结构 /59 4.2 选择语句 /60 【课堂案例4-1】:使用单分支if语句判断两个数字中的较大数 /60 【课堂案例4-2】:使用if语句将两个数字按从小到大的顺序输出 /61 【课堂案例4-3】:使用if语句检查参数值的有效性 /62 【课堂案例4-4】:使用if…else语句计算数字的绝对值 /62 【课堂案例4-5】:使用if…else语句判断成绩是否及格 /63 【课堂案例4-6】:使用if嵌套删除文件(伪代码) /65 【课堂案例4-7】:使用switch语句查询简单的日程表 /66 4.3 循环语句 /68 【课堂案例4-8】:使用while语句输出递增的数字序列 /68 【课堂案例4-9】:使用while语句在网页上显示一组图片 /69 【课堂案例4-10】:使用do…while语句计算100到500之间所有整数的和 /70 【课堂案例4-11】:使用do…while语句计算m到n之间所有偶数的和 /71 【课堂案例4-12】:使用for语句输出1到n之间所有的整数 /72 4.4 循环控制语句 /73 【课堂案例4-13】:使用break语句计算最小公倍数 /73 【课堂案例4-14】:continue语句演示 /74 4.5 循环嵌套 /74 【课堂案例4-15】:使用二重循环嵌套在页面上显示五子棋棋盘 /75 4.6 异常处理 /76 【课堂案例4-16】:使用throw语句抛出异常 /76 【课堂案例4-17】:使用try…catch()…finally处理异常 /77 4.7 本章练习 /79 第5章 基于原型的面向对象编程 /86 5.1 对象编程概述 /86 5.2 自定义对象的创建和使用 /87 【课堂案例5-1】:使用Object创建自定义对象book,用于描述图书信息 /87 【课堂案例5-2】:使用Object创建自定义对象calc,用于简单数学计算 /88 【课堂案例5-3】:使用构造函数创建自定义对象phone,用于描述电话信息 /89 【课堂案例5-4】:创建图片对象,使用this访问对象自身的属性和方法 /90 【课堂案例5-5】:使用with简化对象操作 /91 【课堂案例5-6】:使用instanceof运算符判断对象类型 /93 【课堂案例5-7】:使用instanceof运算符检查参数的类型 /94 【课堂案例5-8】:使用for…in 循环遍历对象成员 /95 【课堂案例5-9】:使用私有对象属性实现数据隐藏 /96 【课堂案例5-10】:为属性添加赋值方法(Setter)和取值方法(Getter) /97 【课堂案例5-11】:使用原型(prototype)扩展对象类型 /99 5.3 对象继承 /100 【课堂案例5-12】:使用call()方法实现对象继承 /100 【课堂案例5-13】:使用原型链(Prototype Chain)实现对象继承 /101 5.4 定义对象的不同方式 /103 【课堂案例5-14】:使用工厂函数方式创建对象 /103 【课堂案例5-15】:使用混合的构造函数/原型方式创建对象 /104 【课堂案例5-16】:使用动态原型方式创建对象 /106 5.5 本章练习 /107 第6章 本地对象 /109 6.1 本地对象概述 /109 6.2 Boolean对象 /109 【课堂案例6-1】:比较布尔值与布尔对象的区别 /110 【课堂案例6-2】:复制布尔对象 /111 6.3 Number对象 /112 【课堂案例6-3】:使用Number对象获取数值极限 /113 【课堂案例6-4】:将数字转换成字符串 /113 【课堂案例6-5】:设置数值精确度 /114 【课堂案例6-6】:数值进制转换 /115 6.4 String对象 /116 【课堂案例6-7】:合成新的字符串 /118 【课堂案例6-8】:显示字符串的Unicode编码 /119 【课堂案例6-9】:截取字符串内容 /119 【课堂案例6-10】:在字符串中精确查找指定内容 /121 【课堂案例6-11】:在字符串中进行模糊查找 /122 【课堂案例6-12】:精确查找替换字符串内容 /123 【课堂案例6-13】:将字符串分割成数组,提取英文句子中前3个单词 /124 【课堂案例6-14】:转换字母大小写 /125 【课堂案例6-15】:为字符串添加样式 /126 6.5 RegExp对象 /127 【课堂案例6-16】:使用正则表达式替换字符串中的文本 /128 【课堂案例6-17】:使用正则表达式验证电子邮箱格式 /129 【课堂案例6-18】:使用正则表达式交换单词的位置 /130 6.6 Array对象 /131 【课堂案例6-19】:使用Array对象创建数组 /132 【课堂案例6-20】:使用for…in循环遍历数组,并找到最大值 /133 【课堂案例6-21】:对数组进行排序 /134 【课堂案例6-22】:使用Array提供的方法添加、删除或替换数组元素 /135 【课堂案例6-23】:将数组转换成字符串 /136 【课堂案例6-24】:使用现有数组元素生成新数组 /137 【课堂案例6-25】:使用回调函数处理数组元素 /139 【课堂案例6-26】:使用二维数组 /141 6.7 Math对象 /143 【课堂案例6-27】:使用Math对象完成数学计算1 /144 【课堂案例6-28】:使用Math对象完成数学计算2 /144 6.8 Date对象 /146 【课堂案例6-29】:创建Date对象 /148 【课堂案例6-30】:使用Date对象计算程序运行时间 /150 【课堂案例6-31】:使用Date对象的方法设置/获取日期时间信息 /151 6.9 Error对象 /152 【课堂案例6-32】:使用自定义Error对象抛出异常 /153 【课堂案例6-33】:处理系统抛出的异常 /154 6.10 全局对象 /155 【课堂案例6-34】:使用全局方法 /156 6.11 本章练习 /157 第7章 浏览器对象模型(BOM) /167 7.1 浏览器对象模型概述 /167 7.2 window对象 /168 【课堂案例7-1】:获取浏览器窗口的位置和大小 /169 【课堂案例7-2】:控制浏览器窗口的位置和大小 /170 【课堂案例7-3】:使用模式对话框 /173 【课堂案例7-4】:制作简单的数字时钟 /175 【课堂案例7-5】:在网页中实现滚动屏幕功能 /176 7.3 navigator对象 /178 【课堂案例7-6】:获取浏览器及操作系统的相关信息 /179 【课堂案例7-7】:获取当前浏览器安装的插件信息 /180 7.4 location对象 /181 【课堂案例7-8】:获取浏览器URL的相关信息 /182 【课堂案例7-9】:使用location对象实现页面跳转和刷新 /182 【课堂案例7-10】:创建页面导航 /184 7.5 history对象 /186 【课堂案例7-11】:访问历史记录中的URL /186 7.6 screen对象 /187 【课堂案例7-12】:获取用户屏幕信息 /188 【课堂案例7-13】:根据用户屏幕信息切换网页显示效果 /189 7.7 本章练习 /190 第8章 HTML文档对象模型(DOM) /192 8.1 文档对象模型概述 /192 8.2 DOM核心接口 /196 【课堂案例8-1】:获取DOM树中的节点信息 /200 【课堂案例8-2】:删除DOM树中的节点 /202 【课堂案例8-3】:在DOM树中添加子节点 /203 【课堂案例8-4】:替换DOM树中的节点 /205 【课堂案例8-5】:复制DOM树中的节点 /206 【课堂案例8-6】:获取节点的属性 /207 【课堂案例8-7】:控制文本节点 /209 【课堂案例8-8】:提取网页中的超链接地址 /211 8.3 DOM HTML /212 【课堂案例8-9】:获取文档信息 /215 【课堂案例8-10】:修改文档中的链接 /216 【课堂案例8-11】:操作文档中的表格 /217 【课堂案例8-12】:获取文本框中用户输入的内容 /220 【课堂案例8-13】:获取单选框用户选择的内容 /221 【课堂案例8-14】:获取复选框用户选择的内容 /222 【课堂案例8-15】:控制下拉菜单 /223 【课堂案例8-16】:判断用户选取的文件类型 /225 【课堂案例8-17】:限制用户使用表单元素 /226 【课堂案例8-18】:验证表单数据 /227 【课堂案例8-19】:为所有段落加边框 /228 【课堂案例8-20】:选项卡效果 /230 【课堂案例8-21】:Web相册 /231 【课堂案例8-22】:修改网页背景色 /234 【课堂案例8-23】:显示/隐藏页面元素 /235 【课堂案例8-24】:覆盖显示图片 /236 【课堂案例8-25】:在网页中绘图1 /238 【课堂案例8-26】:在网页中绘图2 /239 8.4 本章练习 /240 第9章 事件(Event)处理 /245 9.1 事件处理概述 /245 9.2 基于HTML属性的事件处理方法 /245 【课堂案例9-1】:文档事件 /246 【课堂案例9-2】:鼠标事件 /248 【课堂案例9-3】:获得/失去焦点事件 /249 【课堂案例9-4】:键盘事件 /250 【课堂案例9-5】:onchange事件 /250 【课堂案例9-6】:使用this作参数 /251 【课堂案例9-7】:为事件设置响应函数 /252 9.3 DOM EVENT事件处理 /253 【课堂案例9-8】:注册事件监听器,设置背景图片 /256 【课堂案例9-9】:注册多个事件监听器,实现简易加法计算器 /257 【课堂案例9-10】:事件指派 /258 【课堂案例9-11】:显示鼠标位置 /259 【课堂案例9-12】:创建快捷菜单,缩放图片 /261 【课堂案例9-13】:创建快捷菜单,缩放图片 /262 9.4 本章练习 /265 第10章 常用的数据交换格式和数据存储技术 /267 10.1 XML文档 /267 【课堂案例10-1】:同步访问XML文档,获取图书信息 /269 【课堂案例10-2】:异步访问XML文档,设置段落样式 /270 【课堂案例10-3】:XML生成树状菜单 /272 10.2 JSON /274 【课堂案例10-4】:使用JSON对象 /274 【课堂案例10-5】:访问JSON对象中的对象 /276 【课堂案例10-6】:使用JSON数组 /276 【课堂案例10-7】:访问JSON对象数组 /277 10.3 数据存储 /278 【课堂案例10-8】:使用cookie存储用户账户信息 /278 【课堂案例10-9】:使用localStorage存储数据 /280 【课堂案例10-10】:使用sessionStorage存储数据 /282 10.3 本章练习 /284 第11章 综合练习——服饰设计网站 /286 11.1 网站整体说明 /286 11.2 JavaScript程序说明 /287
曹维明,北京工贸技师学院教师,从事《网站程序开发》、《网站开发综合实训》等课程的教学工作,并承担教学设计、教材编写,教学资源设计工作。曾于“北京和协航电信息科技有限公司”软件部从事软件开发工作,于“北京银都新天地科技有限公司”从事软件开发工作。
http://www.hxedu.com.cn/hxedu/fg/book/bookinfo.html?code=G0234030