“21天学编程系列”自2009年1月上市以来一直受到广大读者的青睐。该系列中的大部分图书从一上市就登上了编程类图书销售排行榜的前列,很多大中专院校也将该系列中的一些图书作为教材使用,目前这些图书已经多次印刷、改版。可以说,“21天学编程系列”是自2009年以来国内原创计算机编程图书就极有影响力的品牌之一。
本书有何特色
1.细致体贴的讲解-为了让读者更快地上手,本书特别设计了适合初学者的学习方式,用准确的语言总结概念?用直观的图示演示过程?用详细的注释解释代码?用形象的比方帮助记忆。
2.实用超值的DVD光盘-为了帮助读者比较直观地学习,本书附带DVD光盘,内容包括多媒体视频、电子教案(PPT)和实例源代码等。
3.提供完善的技术支持
本系列书籍已升级至第四版:
JavaScript是Web开发中应用早、发展成熟、用户多的脚本语言。其语法简洁,代码可读性语言中好,它在使用时不用考虑数据类型,是真正意义上的动态语言。《21天学编程系列:21天学通JavaScript》分为4篇,共21章。第一篇完整地讲解了JavaScript的基础知识,主要内容包括JavaScript概述、数据类型、常量与变量、表达式与运算符、程序语句、函数和数组等。第二篇专门介绍JavaScript中内置对象的应用,内容包括JavaScript对象基础、窗口和框架、屏幕和浏览器对象、文档对象、历史对象和地址对象、表单对象和表单元素和脚本化cookie等。第三篇讲解的是JavaScript的高级技术,主要讲解了JavaScript与XML技术、正则表达式、Ajax基础、Ajax高级应用、JavaScript与插件和JavaScript的调试与优化等。最后一篇为综合案例篇,用一个完整的例子讲解了如何使用JavaScript进行大型应用开发。
本书前面的内容中已经大量使用过document对象,本章将对其进行专门讲解。document是一个文档的逻辑对象,管理与一个文档相关的信息并提供操作文档的接口,在JavaScript中称它为文档对象。document对象是window对象的一个子对象,window对象代表浏览器窗口,而document对象代表了浏览器窗口中的文档。
理解并掌握document对象,并在应用开发中灵活运用。
理解并掌握图像对象的特性及应用。
理解并掌握锚对象的链接对象的特性及运用。
以上几点是对读者在学习本章内容时所提出的基本要求,也是本章希望能够达到的目的。读者在学习本章内容时可以将其作为学习的参照。
11.1文档对象概述
document对象代表一个浏览器窗口或框架中显示的HTML文件。浏览器在加载HTML文档时,为每一个HTML文档创建相应的document对象。JavaScript通过document对象来操作HTML文档,如创建节点、改变文档显示的内容等。
11.1.1初识文档对象
文档对象即document对象,它为操作HTML文档提供接口。document拥有大量的属性和方法,其组合了大量的子级对象,如图像对象、超链接对象、表单对象等。这些子对象可以用来控制HTML文档中的图片、超链接、表单元素等。document对象为操作文档提供一个统一的接口,其负责管理下级子对象的关系信息。HTML文档中相当多的功能是由子级对象提供的,document对象对这些功能进行组合抽象。
11.1.2详解文档对象的使用方法
document对象不需要手工创建,在文档初始化时就已经由系统内部创建。直接调用其方法或属性即可,通常在程序中使用,如文档URL、最后修改日期、超链接颜色等属性。结合配置文件可以实现文档定制的功能,调用语法如下:
01document.location=";//设置链接
02document.lastModfied;//查看文档最后修改时间
使用形式和其他对象没有区别,下面通过例子来加深认识。
第一篇 基 础 篇
第1章 JavaScript概述(教学视频:59分钟)
1.1 初识JavaScript
1.1.1 理解JavaScript的历史
1.1.2 JavaScript标准
1.1.3 JavaScript的现况
1.1.4 JavaScript的发展趋势
1.2 简单的脚本语言
1.2.1 认识脚本语言
1.2.2 脚本语言的分类
1.2.3 JavaScript的作用
1.2.4 JavaScript和其他语言的异同
1.2.5 JavaScript与Java的异同
1.3 第一个JavaScript程序
1.3.1 预备知识
1.3.2 选择JavaScript编辑器
1.3.3 编写"Hello World"程序
1.3.4 浏览器对JavaScript的支持
1.4 注意事项
1.4.1 大小写敏感
1.4.2 注意空格与换行
1.4.3 分号可有可无
1.5 小结
1.6 习题
第2章 数据类型(教学视频:61分钟)
2.1 基本数据类型
2.1.1 字符串型数据
2.1.2 深入理解字符串
2.1.3 使用数值型数据
2.1.4 使用布尔型数据
2.2 复合数据类型
2.2.1 常用内置对象
2.2.2 常用日期对象
2.2.3 理解全局对象
2.2.4 常用数学对象
2.2.5 常用字符串对象
2.2.6 掌握数组对象
2.3 其他数据类型
2.3.1 使用函数
2.3.2 使用空值
2.3.3 使用不确定的类型
2.4 数据类型的转换
2.4.1 隐式类型转换
2.4.2 显式类型转换
2.5 小结
2.6 习题
第3章 变量和常量(教学视频:47分钟)
3.1 常量
3.1.1 常量分类
3.1.2 使用常量
3.2 变量
3.2.1 什么是变量
3.2.2 如何定义变量
3.2.3 变量的命名
3.2.4 变量的作用范围
3.2.5 变量的用途
3.3 JavaScript关键字详解
3.4 小结
3.5 习题
第4章 表达式与运算符(教学视频:88分钟)
4.1 什么是表达式
4.2 什么是操作数
4.3 运算符概述
4.3.1 什么是运算符
4.3.2 操作数的分类
4.4 算术运算符简介
4.4.1 加法运算符
4.4.2 减法运算符
4.4.3 乘法运算符
4.4.4 除法运算符
4.4.5 取模运算符
4.4.6 负号运算符
4.4.7 正号运算符
4.4.8 递增运算符
4.4.9 递减运算符
4.5 关系运算符简介
4.5.1 相等运算符
4.5.2 等同运算符
4.5.3 不等运算符
4.5.4 不等同运算符
4.5.5 小于运算符
4.5.6 大于运算符
4.5.7 小于或等于运算符
4.5.8 大于或等于运算符
4.5.9 in运算符
4.5.10 instanceof运算符
4.6 字符串运算符简介
4.7 赋值运算符简介
4.8 逻辑运算符简介
4.8.1 逻辑与运算符
4.8.2 逻辑或运算符
4.8.3 逻辑非运算符
4.9 位运算符简介
4.9.1 位与运算符
4.9.2 位或运算符
4.9.3 位异或运算符
4.9.4 位非运算符
4.9.5 左移运算符
4.9.6 带符号右移运算符
4.9.7 高位补0右移运算符
4.10 其他运算符
4.10.1 条件运算符
4.10.2 new运算符
4.10.3 void运算符
4.10.4 类型检测运算符
4.10.5 对象属性存取运算符
4.10.6 数组存取运算符
4.10.7 delete运算符
4.10.8 逗号运算符
4.10.9 函数调用运算符
4.10.10 this运算符
4.11 掌握运算符的优先级
4.12 小结
4.13 习题
第5章 控制语句(教学视频:69分钟)
5.1 使用选择语句
5.1.1 if选择语句
5.1.2 if-else选择语句
5.1.3 if-else-if选择语句
5.1.4 switch多条件选择语句
5.1.5 选择语句综合示例
5.2 使用循环语句
5.2.1 for循环语句
5.2.2 while循环语句
5.2.3 do-while循环语句
5.2.4 for-in循环语句
5.2.5 break和continue跳转语句
5.2.6 循环语句综合示例
5.3 使用异常处理语句
5.3.1 try-catch语句
5.3.2 try-catch-finally语句
5.3.3 throw语句
5.3.4 异常处理语句综合示例
5.4 小结
5.5 习题
第6章 函数(教学视频:68分钟)
6.1 函数的功能
6.2 函数的定义
6.2.1 函数的普通定义方式
6.2.2 函数的变量定义方式
6.2.3 函数的指针调用方式
6.2.4 认识函数参数
6.2.5 认识arguments对象
6.3 函数返回类型
6.3.1 值类型
6.3.2 引用类型
6.3.3 使用返回函数
6.4 函数的分类
6.4.1 构造函数
6.4.2 有返回值的函数
6.4.3 无返回值的函数
6.5 函数的作用域
6.5.1 公有函数的作用域
6.5.2 私有函数的作用域
6.5.3 使用this关键字
6.6 小结
6.7 习题
第7章 数组(教学视频:65分钟)
7.1 数组简介
7.1.1 简单介绍数组概念
7.1.2 认识数组元素
7.1.3 掌握多维数组
7.2 如何创建一个数组
7.2.1 创建空数组
7.2.2 指定数组长度创建新数组
7.2.3 指定数组元素创建新数组
7.2.4 直接创建新数组
7.3 数组元素基本操作
7.3.1 提取数据――读取数组元素
7.3.2 添加数据――添加数组元素
7.3.3 删除数据――删除数组元素
7.3.4 详解数组元素个数
7.4 数组对象常见操作
7.4.1 字符转换――数组转换为字符串
7.4.2 字符连接――数组元素连接成字符串
7.4.3 数据添加――在数组尾部添加元素
7.4.4 数据更新――删除数组的最后一个元素
7.4.5 删除数据――移除数组顶端的元素
7.4.6 添加数据――在数组头部添元素
7.4.7 扩充数组――添加元素并生成新数组
7.4.8 更新移动数据――删除、替换或插入数组元素
7.4.9 生成特定数据――获取数组中的一部分元素
7.4.10 置换数据――颠倒数组元素的顺序
7.4.11 数据排序――对数组元素进行排序
7.4.12 数据转换――将对象转换为本地字符串
7.5 小结
7.6 习题
第二篇 对 象 篇
第8章 JavaScript面向对象基础(教学视频:44分钟)
8.1 面向对象概念
8.1.1 面向对象中的语言
8.1.2 对象的构成方式
8.2 对象应用
8.2.1 详解对象声明和实例化
8.2.2 详解对象的引用
8.2.3 详解对象的废除
8.2.4 详解对象的早绑定和晚绑定
8.3 JavaScript的对象层次
8.3.1 JavaScript对象模型结构
8.3.2 客户端对象层次简单介绍
8.3.3 浏览器对象模型详解
8.4 事件驱动与事件处理
8.4.1 详解事件与事件驱动
8.4.2 掌握事件与处理代码关联
8.4.3 函数调用事件
8.4.4 代码调用事件
8.4.5 掌握设置对象事件的方法
8.4.6 掌握显式调用事件处理程序
8.4.7 事件处理程序的返回值
8.4.8 事件与this运算符
8.5 常用事件
8.5.1 详解浏览器事件
8.5.2 详解鼠标移动事件
8.5.3 详解鼠标单击事件
8.5.4 详解加载与卸载事件
8.5.5 详解得到焦点与失去焦点事件
8.5.6 详解键盘事件
8.5.7 详解提交与重置事件
8.5.8 详解选择与改变事件
8.6 小结
8.7 习题
第9章 窗口和框架(教学视频:70分钟)
9.1 window对象
9.1.1 认识window对象
9.1.2 认识window对象的使用方法
9.2 window对象事件及使用方法
9.2.1 装进去――装载文档
9.2.2 卸下来――卸载文档
9.2.3 焦点处理――得到焦点与失去焦点
9.2.4 调整窗口的大小
9.2.5 对错误进行处理
9.3 对话框
9.3.1 过滤错误――警告对话框
9.3.2 信息确认――询问对话框
9.3.3 信息录入――输入对话框
9.4 状态栏
9.4.1 详解状态栏
9.4.2 认识默认状态栏信息
9.4.3 认识状态栏瞬间信息
9.5 窗口操作
9.5.1 打开一个新窗口
9.5.2 认识窗口名字
9.5.3 如何关闭窗口
9.5.4 对窗口进行引用
9.5.5 对文档进行滚动
9.6 超时与时间间隔
9.6.1 对代码延迟执行
9.6.2 认识周期性执行代码
9.6.3 停止执行周期性执行代码
9.6.4 取消延迟代码执行
9.7 框架操作
9.7.1 框架简介
9.7.2 详解父窗口与子窗口
9.7.3 详解窗口之间的关系
9.7.4 认识窗口名字
9.8 小结
9.9 习题
第10章 屏幕和浏览器对象(教学视频:60分钟)
10.1 认识屏幕对象
10.1.1 利用屏幕对象检测显示器参数
10.1.2 利用屏幕对象检测客户端显示器屏幕分辨率
10.1.3 利用屏幕对象检测客户端显示器屏幕的有效宽度和高度
10.1.4 利用屏幕对象进行网页开屏
10.2 认识浏览器对象
10.2.1 获取浏览器对象的属性值
10.2.2 MimeType对象和Plugin对象详解
10.2.3 浏览器对象的javaEnabled属性详解
10.3 小结
10.4 习题
第11章 文档对象(教学视频:84分钟)
11.1 文档对象概述
11.1.1 初识文档对象
11.1.2 详解文档对象的使用方法
11.1.3 对标签中的值进行引用
11.1.4 详解引用文档中对象的方法
11.2 文档对象的应用
11.2.1 美化链接――设置超链接的颜色
11.2.2 美化网页――设置网页背景颜色和默认文字颜色
11.2.3 设置文档信息
11.2.4 如何在标题栏中显示滚动信息
11.2.5 如何防止盗链
11.2.6 详解在网页中输出内容
11.2.7 详解在其他文档中输出内容
11.2.8 详解输出非HTML文档
11.2.9 认识文档中的所有HTML元素
11.2.10 如何引用文档中的HTML元素
11.2.11 如何引用文档元素中的子元素
11.3 图像对象
11.3.1 图像对象概述
11.3.2 如何创建和使用图像对象
11.3.3 掌握图像对象的onerror事件
11.3.4 掌握显示图片的信息
11.3.5 对图片进行置换
11.3.6 认识随机图片
11.3.7 动态改变图片大小
11.4 链接对象
11.4.1 链接对象简介
11.4.2 掌握感知鼠标移动事件
11.4.3 对一个网页上的所有超链接进行查看
11.4.4 认识翻页程序
11.4.5 认识网站目录
11.5 锚对象
11.5.1 锚对象简介
11.5.2 认识锚对象与链接对象的区别
11.5.3 巧建文档索引
11.6 小结
11.7 习题
第12章 历史对象和地址对象(教学视频:50分钟)
12.1 历史对象
12.1.1 历史对象简介
12.1.2 如何前进到上一页和后退到下一页
12.1.3 如何实现页面的跳转
12.2 地址对象
12.2.1 URL对象简介
12.2.2 如何获取指定地址的各属性值
12.2.3 如何加载新网页
12.2.4 如何获取参数
12.2.5 如何装载新文档与重新装载当前文档
12.2.6 如何刷新文档
12.2.7 如何加载新文档
12.3 小结
12.4 习题
第13章 表单对象和表单元素(教学视频:64分钟)
13.1 表单对象概述
13.1.1 表单对象简介
13.1.2 对大小写进行转换
13.1.3 表单的提交和重置
13.1.4 响应表单的提交和重置
13.2 表单对象的应用
13.2.1 如何进行表单验证
13.2.2 认识循环验证表单
13.2.3 掌握设置表单的提交方式
13.2.4 认识重置表单的提示
13.2.5 如何不使用提交按钮来提交表单
13.3 表单元素
13.3.1 表单元素简介
13.3.2 表单元素的命名方式
13.4 文本框
13.4.1 认识文本框的创建方式
13.4.2 如何查看文本框的属性值
13.4.3 如何动态跟踪文本框中输入的文字个数
13.4.4 如何限制文本框中输入的字数
13.4.5 如何自动选择文本框中的文字
13.5 按钮
13.5.1 按钮简介
13.5.2 按钮创建方式简介
13.5.3 认识网页调色板
13.5.4 如何改变多行文本框大小
13.6 小结
13.7 习题
第14章 脚本化cookie(教学视频:59分钟)
14.1 cookie对象简介
14.1.1 什么是cookie对象
14.1.2 cookie的作用和检测用户浏览器是否支持cookie
14.2 如何创建与读取cookie
14.3 如何获取cookie的值
14.4 认识cookie的编码
14.5 掌握cookie的生存期
14.6 掌握cookie的路径和域
14.7 了解cookie的安全性
14.8 掌握使用cookie的注意事项
14.9 小结
14.10 习题
第三篇 高级技术篇
第15章 JavaScript与XML技术(教学视频:84分钟)
15.1 XML简介
15.1.1 针对XML的API概述
15.1.2 认识节点的层次
15.1.3 掌握特定语言的文档模型
15.2 使用DOM
15.2.1 巧妙访问相关的节点
15.2.2 巧测节点类型
15.2.3 简单处理节点属性
15.2.4 如何访问指定节点
15.2.5 如何创建新节点
15.2.6 如何修改节点
15.3 HTML DOM特性
15.3.1 让特性像属性一样
15.3.2 认识表格相关特性
15.4 遍历DOM文档
15.4.1 认识文档节点迭代器
15.4.2 巧妙遍历文档树
15.5 如何测试与DOM标准的一致性
15.6 小结
15.7 习题
第16章 正则表达式(教学视频:40分钟)
16.1 正则表达式基础
16.1.1 为何使用正则表达式
16.1.2 使用RegExp对象
16.2 简单模式
16.2.1 详解元字符
16.2.2 详解量词
16.3 复杂模式
16.3.1 使用分组
16.3.2 使用候选
16.3.3 使用非捕获性分组
16.3.4 使用前瞻
16.4 常用模式
16.4.1 使用正则表达式验证日期
16.4.2 使用正则表达式验证电子邮件地址
16.5 小结
16.6 习题
第17章 Ajax基础(教学视频:68分钟)
17.1 了解传统的Web技术及Ajax的由来
17.2 Ajax技术原理简介
17.3 Ajax技术的优缺点分析
17.4 认识Ajax技术的组成部分
17.4.1 Ajax中的JavaScript技术
17.4.2 Ajax中的XMLHttpRequest技术
17.4.3 Ajax中的CSS技术
17.4.4 Ajax中的DOM技术
17.4.5 Ajax中的XML技术
17.5 XMLHttpRequest对象简介
17.5.1 XMLHttpRequest简介
17.5.2 XMLHttpRequest如何创建
17.6 局部更新
17.7 实现Ajax
17.7.1 详解实现Ajax的步骤
17.7.2 如何创建HTTP请求
17.7.3 如何设置HTTP响应回调函数
17.7.4 如何发送HTTP请求
17.7.5 一个完整的Ajax实例
17.8 小结
17.9 习题
第18章 Ajax高级应用(教学视频:64分钟)
18.1 客户端脚本语言详解
18.1.1 如何使用JavaScript的局部刷新技术
18.1.2 如何使用iframe的局部刷新技术
18.2 服务器脚本语言详解
18.2.1 掌握改进的iframe局部刷新
18.2.2 掌握Ajax与服务器互动
18.3 小结
18.4 习题
第19章 JavaScript与插件(教学视频:96分钟)
19.1 掌握ActiveX控件的应用
19.1.1 创建ActiveX控件
19.1.2 添加ATL控件
19.1.3 为控件添加属性
19.1.4 为实现类添加成员变量
19.1.5 改写相关函数
19.1.6 添加事件功能
19.1.7 添加事件激发功能
19.1.8 编译生成控件
19.1.9 使用ActiveX控件
19.2 JavaApplet
19.2.1 如何安装JDK
19.2.2 如何创建Applet
19.2.3 如何使用Applet
19.3 Flash概述
19.3.1 如何创建Flash
19.3.2 认识Flash与JavaScript的交互
19.4 小结
19.5 习题
第20章 JavaScript的调试与优化(教学视频:57分钟)
20.1 JavaScript开发工具深入剖析
20.2 JavaScript的调试简介
20.2.1 如何进行调试前的准备工作
20.2.2 如何进行调试
20.2.3 如何跟踪代码
20.3 对日志进行输出
20.4 对代码进行优化
20.5 小结
20.6 习题
第四篇 综合案例篇
第21章 捡馅饼游戏(教学视频:63分钟)
21.1 创作思路及基本场景的实现
21.1.1 创作思路
21.1.2 实现基本场景及用户界面
21.2 设计游戏角色
21.2.1 馅对象
21.2.2 饼对象
21.3 游戏进程控制
21.3.1 初始化游戏
21.3.2 游戏启动控制
21.3.3 游戏循环
21.3.4 游戏结束控制
21.3.5 运行测试
21.4 小结