新手学 JavaScript 编程 第4 版 · 2014-06-25 · [美] John Pollock 著 王肖峰 译...

26
[] John Pollock 王肖峰 新手学 JavaScript 编程 (第4版) 利用特效制作动态网页 学习最新的JavaScript标准 使用HTML5jQuery

Transcript of 新手学 JavaScript 编程 第4 版 · 2014-06-25 · [美] John Pollock 著 王肖峰 译...

[美] John Pollock 著

王肖峰    译

新手学JavaScript编程

新手学JavaScript 编程(第4版)

JavaScript: A Beginner's Guide, Fourth Edition

关键技术——轻松掌握!

  《新手学JavaScript编程(第4版) 根据 新JavaScript标准对上一版进行了全面更新,专门新

增了一章的篇幅介绍HTML5和jQuery,讲述如何使用JavaScript这门通用Web开发语言通过添

加特效来制作动态网页。本书节奏明快,涵盖变量、函数、运算符、事件处理函数、对象、数

组、字符串和表单等JavaScript基础知识,并讨论调试、可访问性和安全等较高级技术。在这本

实用指南的帮助下,你将能立刻着手使用JavaScript!

本书特色

● 关键技能和概念——每章开头列出相应章节涵盖的具体技能

● 专家解答——“问答”部分提供额外信息和有用的提示

● 动手尝试——紧贴实用的练习,演示如何运用所学的知识

● 注意——与所讨论主题相关的附加信息

● 提示——有用的提醒信息或替代做法

● 警告——需要避免的错误和其他完成任务的方法

● 自测题——章末复习题可供测验所学的知识

● 语法批注——示例代码中的批注对所用编程技术进行讲解

资源下载

  http://www.mhprofessional.com/computingdownload  http://www.tupwk.com.cn/downpage

作者简介

  John Pollock白天负责Web管理工作,夜晚则继续从事网站和其他项目的开发。John运营着

一个专门讨论Web开发和设计的网站www.scripttheweb.com。John也是www.webxpertz.net(一个

旨在为Web开发人员提供帮助的社区)的贡献者。

新手学

JavaScrip

t

编程 (

第4版)

(第4版)

● 利用特效制作动态网页

● 学习最新的JavaScript标准

● 使用HTML5和jQuery

定价:68.00元http://www.mheducation.com

新手学 JavaScript 编程 (第 4 版)

[美] John Pollock 著

王肖峰 译

北 京

John Pollock JavaScript: A Beginner’s Guide, Fourth Edition EISBN: 978-0-07-180937-5 Copyright © 2013 by McGraw-Hill Education.

All Rights reserved. No part of this publication may be reproduced or transmitted in any form or by any means, electronic or mechanical, including without limitation photocopying, recording, taping, or any database, information or retrieval system, without the prior written permission of the publisher. This authorized Chinese translation edition is jointly published by McGraw-Hill Education (Asia) and Tsinghua University Press Limited. This edition is authorized for sale in the People's Republic of China only, excluding Hong Kong, Macao SAR and Taiwan. Copyright © 2014 by McGraw-Hill Education (Asia), a division of McGraw-Hill Education (Singapore) Pte. Ltd. and Tsinghua University Press Limited.

版权所有。未经出版人事先书面许可,对本出版物的任何部分不得以任何方式或途径复制或传播,包括但不限于复印、录制、录音,或通过任何数据库、信息或可检索的系统。 本授权中文简体字翻译版由麦格劳-希尔(亚洲)教育出版公司和清华大学出版社有限公司合作出版。此版本经授权仅限在中华人民共和国境内(不包括香港特别行政区、澳门特别行政区和台湾)销售。 版权©2014 由麦格劳-希尔(亚洲)教育出版公司与清华大学出版社有限公司所有。

北京市版权局著作权合同登记号 图字:01-2013-8357

本书封面贴有 McGraw-Hill Education 公司防伪标签,无标签者不得销售。

版权所有,侵权必究。侵权举报电话:010-62782989 13701121933

图书在版编目(CIP)数据

新手学 JavaScript 编程(第 4 版) / (美) 波洛克(Pollock, J.) 著;王肖峰 译. —北京:清华大学出版社,2014

书名原文:JavaScript: A Beginner’s Guide, Fourth Edition ISBN 978-7-302-36223-4

Ⅰ. ①新… Ⅱ. ①波… ②王… Ⅲ. ①JAVA 语言—程序设计 Ⅳ. ①TP312

中国版本图书馆 CIP 数据核字(2014)第 076254 号

责任编辑:王 军 韩宏志 封面设计:牛艳敏

版式设计:思创景点

责任校对:邱晓玉

责任印制:

出版发行:清华大学出版社 网 址:http://www.tup.com.cn,http://www.wqbook.com 地 址:北京清华大学学研大厦 A 座 邮 编:100084 社 总 机:010-62770175 邮 购:010-62786544 投稿与读者服务:010-62776969,[email protected] 质 量 反 馈:010-62772015,[email protected]

装 订 者: 经 销:全国新华书店 开 本:185mm×260mm 印 张:28 字 数:629 千字 版 次:2014 年 6 月第 1 版 印 次:2014 年 6 月第 1 次印刷 印 数:1~3000 定 价:68.00 元 ——————————————————————————————————————————— 产品编号:

译 者 序

JavaScript 是目前全球最流行的编程语言之一,它已广泛应用于 Web 应用开发。AJAX

出现后,JavaScript 在网页开发中的地位显得更加重要。它可以帮助操作 Web 文档结构,

可实现前后台的灵活交互,与 CSS 结合使用,更可实现各种完美的页面特效。但同样,

JavaScript 自身也存在问题,最严重的一个莫过于各种浏览器对 JavaScript 的实现各不相同,

这导致很难编写出能跨浏览器运行的脚本,本书将对该问题进行详细讲解。随着 Web 的发

展,新版 JavaScript 规范的推出,该问题终将得到解决。 JavaScript 是一门全面的编程语言,能处理复杂的计算和交互,还具有闭包函数、面向

对象等特性,因此要完全地掌握这门语言并不容易。清华大学出版社引进本书,希望能帮

助更多初学者轻松掌握 JavaScript 基础知识,也希望能为一些高级程序员释疑解惑。只需

了解 HTML 和 CSS、文本编辑器以及 Web 浏览器即可顺利进行本书的学习。本书不仅详

细讲解变量、函数定义、操作符、数组等基础知识,还讨论对象、文档操作、事件处理、

表单等高级技术,最后两章为感兴趣的读者提供一些额外的延伸内容:调试、JavaScript安全、AJAX、JavaScript 框架、HTML5 以及 Harmony 等。

本书结构精妙。每章开头列出相应章节的要点,每节内容中都提供了丰富示例,在一

些篇幅较长的章节后还提供动手尝试,指导读者对所学的知识进行练习。结尾部分还提供

一些自测题。在一些疑问较多的章节,作者还专门提供了一些常见问题的答案。另外由于

本书面向初学者,还穿插了各种提示,将一些容易出问题或重要知识进行强调。 感谢清华大学出版社的编辑们为本书付出的心血。同样感谢妻子对我翻译工作的支持

和鼓励。没有你们的帮助和鼓励,本书就不可能顺利付梓。 对于这本经典之作,译者对本书进行了详细阅读,对其中一些有争议的地方也进行了

反复考证,但个人精力有限,难免有疏漏之处,敬请各位读者谅解。如有任何意见或建议,

请不吝指正。本书全部章节由王肖峰翻译,参与翻译活动的还有杜欣、高国一、孙其淳、

孙绍辰、徐保科、尤大鹏、袁强强、张宏、张立红。 最后,希望各位读者通过阅读本书可以早日熟练掌握 JavaScript 语言,用它创建出更

精彩的网页,更受欢迎的网站!

作 者 简 介

John Pollock 白天是一位 Web 管理员,晚上则致力于 Web 网站和其他项目。他管理着

一个专注于 Web 开发和设计的网站 Script the Web(www.scripttheweb.com)。他也是 Web Xpertz (www.webxpertz.net)的贡献者,这是一个Web开发者的帮助社区。John 从 Sam Houston 州

立大学获得了英文系的文科学士学位,现在他与妻子 Heather、女儿 Eva 和 Elizabeth 居住

在德克萨斯州的亨茨维尔市。

技术编辑简介

Christie Sorenson是 ZingChart的高级软件工程师。Christie 自 1997 年以来一直在开发

基于 JavaScript 的系统,这些系统用于分析、内容管理和商业应用领域;Christie 也长期关

注着Java Script语言的发展及该语言的用户。她是多本书籍的合著者,包括Ajax: The Complete Reference 和 HTML & CSS: The Complete Reference。同时她也是 JavaScript: The Complete Reference 和 HTML: A Beginner’s Guide 两本书的技术编辑。Christie 从圣地亚哥的加州大学

获得了计算机科学学士学位。现在她与丈夫 Luke、女儿 Ali 和 Keira 生活在旧金山市。

致 谢

首先感谢我出色的妻子 Heather Pollock,感谢她对我的爱、支持和鼓励,以及为我所

做的一切。我爱你!另外感谢我的两个女儿——Eva 和 Elizabeth。我爱你们! 感谢我的父母 Bruce 和 Joy Anderson,感谢他们给予我的爱、指导和支持。 感谢 J.D.博士和 Linda Andrews,感谢他们对我的爱、指导和支持。 此外,还要感谢 John 和 Betty Hopkins(祖父母)、James D.和 Livian Anderson(祖父母)、

Clifton 和 Juanita Idom(祖父母)、Richard Pollock(兄弟)及家人、Misty Castleman(姐姐)及家

人、Warren Anderson(兄弟)及家人、Jon Andrews(兄弟)及家人、Lisa 和 Julian Owens(叔/姨)及家人,以及我们大家庭中每位姑姑、叔叔、表兄弟或其他亲人们。你们都是催我奋进的

巨大动力。 感谢所有在 McGraw-Hill/Professional 工作的编辑们,感谢他们在本书撰写过程中对我

的支持和帮助。感谢 Brandi Shailer、Ryan Willard、Amanda Russell 以及所有参与编辑过本

书各个版本的编辑们。 感谢技术编辑 Christie Sorenson,他编辑和检查了本书所有技术方面的内容,并帮助我

为本书涉及的主题提供了更清晰的解释。 最后要感谢上帝赋予我通过写作来帮助和教导他人的能力。“永远感谢主,他指明了

前方的路。”

前 言

欢迎阅读《新手学 JavaScript 编程(第 4 版)》!多年前,我在上网时,曾注意到人们在网

页中发布自己的信息并称之为主页。在浏览了一些主页后,我决定创建一个自己的主页。我

不知道从哪里开始,但是,经过尝试和失败后,我明白了如何编写 HTML 以及如何在 Web服务器上发布文档。随着时间的推移,我在其他主页上看到了一些有趣的特效(如不知从哪

里弹出一条警告消息,或当鼠标移到图片时,图片随之变脸),我很好奇,只是想知道如何

才能创建这些特效。莫非这些页面的创造者使用了我不知道的 HTML 标记吗? 最终,有一个网站披露了创建这些特效所使用的技术:JavaScript。我在网络上搜索关

于它的信息,在 Web 中发现了一些教程和脚本。因为我曾经使用过其他编程语言(例如相

对不知名的语言 Ada),所以通过查看这些教程和脚本,我可以相当快速地掌握 JavaScript。 在对 JavaScript 有了充分了解后,我决定创建一个面向初学者的网站,用于 HTML 和

JavaScript 教学。该项目刚开始,我就收到了访问者的一些问题,这些问题都超出了我的知

识范围,这就迫使我对 JavaScript 做进一步的研究和学习。最终,我完全熟悉了这门脚本

语言及其用途。通过它不只可以在 Web 页面中添加特效,还可以创建脚本用于执行某些有

用的任务,如验证表单输入、在文档中添加导航元素或者对用户事件做出反应。 本书旨在帮助你学习 JavaScript 语言的基础知识,并让整个学习过程尽可能轻松和顺

畅。学习本书不要求之前有任何的编程经验。所有需要知道的是:HTML 和/或 XHTML 方

面的知识、层级样式表(CSS),以及如何使用自己喜爱的文本编辑器和 Web 浏览器(详见第

1 章)。

本书内容

本书共 16 章,涵盖了 JavaScript 语言的不同主题。第 1、2 章讲解该语言的基本内容:

JavaScript 语言的定义、开始学习 JavaScript 之前需要掌握的知识、如何在 HTML 文件中添加

JavaScript。本书的中间章节(第 3 章~第 14 章)讲解了从变量乃至到使用 JavaScript 处理表单

的所有 JavaScript 主题。最后两章(第 15 章和第 16 章)介绍了一些高级技术,并提供了一些资

源,如果你在完成本书的学习之后希望对 JavaScript 进行深入学习,可以参考这些资源。 每章都包含了一些特殊的内容,用于帮助你学习 JavaScript。这些内容包括: ● 关键技能与概念 每章开头列出一组关键技能和概念,为读者展示了该章的主要

内容。

新手学 JavaScript 编程(第 4 版)

VIII

● 专家解答 “专家解答”部分提供了与前文讲到的主题相关的一些常见问题,并提

供了作者的回答。 ● 动手尝试 该部分以动手实践的方式帮助你练习学到的知识。每个“动手尝试”部分

都会逐步地指导你如何编写代码,从而实现目标。可在 McGraw-Hill/Professional 网站

中找到每个项目的解决方案,网址为 www.mhprofessional.com/computingdownload。另

外,也可从 www.tupwk.com.cn/downpage 下载相关资源。 ● 注意、提示和警告 注意、提示和警告用于提醒你注意一些知识点,在之后的学习

中,你会发现它们非常有用。 ● 代码 代码列表展示了在脚本或程序中使用的示例源代码。 ● 标注 标注显示了关于样例代码的一些提示和注意事项,它们会指向代码中的相

关行。 ● 自测题 每章都以自测题结尾,一共 15 个问题,用于检测你是否掌握了本章讨论

的主题。所有自测题的答案都可在附录中找到。

就是这样!你现在已经熟悉了本书的组织结构和特殊内容,下面就开启 JavaScript 的学习

之旅吧。如果遇到了什么问题需要帮助,请访问网站 Web Xperts 中的 JavaScript 论坛,网址为

www.webxpertz.net/forums。在该论坛上与其他 JavaScript 程序员进行沟通,他们可能帮助你解

决难题。如果想要联系我,可在我的网站(www.scripttheweb.com/about/contact.html)上给我发消

息或在 Twitter(@ScripttheWeb)上联系我。 现在是时候开始学习 JavaScript 了。做好准备,开始享受学习 JavaScript 的乐趣吧!

目 录

第 1 章 JavaScript 简介 ························ 1 1.1 预备知识 ······································· 2

1.1.1 HTML 和 CSS 基础知识············2

1.1.2 文本编辑器和 Web 浏览器

基础知识·····································3 1.1.3 版本 ·············································5 1.1.4 与 Java 的区别 ····························5

1.1.5 与其他语言的相似之处 ·············5

1.2 开始学习 JavaScript······················ 7 1.2.1 基于原型 ·····································7

1.2.2 客户端 ·········································7

1.2.3 脚本语言 ·····································8

1.3 汇总 ··············································· 8 1.4 在线资源 ······································· 9 1.5 动手尝试 1-1:使用 JavaScript

输出文本········································ 9 1.6 自测题 ········································· 10

第 2 章 在 HTML 文件中添加 JavaScript······························· 13

2.1 使用 HTML 脚本标记················ 14 2.1.1 识别脚本语言 ···························14

2.1.2 调用外部脚本 ···························15

2.1.3 指定脚本加载时间 ···················15

2.1.4 使用<noscript></noscript>

标记············································16

2.2 创建第一个脚本 ························· 17 2.2.1 编写“Hello World”脚本 ·······18

2.2.2 为脚本创建 HTML 文档 ·········18

2.2.3 在 HTML 文档中插入脚本 ·····19

2.3 动手尝试 2-1:在 HTML 文档中 插入脚本 ····································· 20

2.4 使用外部 JavaScript 文件 ··········· 21 2.4.1 创建 JavaScript 文件 ················21 2.4.2 创建 HTML 文件 ······················22 2.4.3 在浏览器中查看页面 ···············23

2.5 动手尝试 2-2:从 HTML 文档 调用外部脚本 ······························ 24

2.6 使用 JavaScript 注释 ··················· 24 2.6.1 添加单行注释 ···························25 2.6.2 添加多行注释 ···························25

2.7 自测题·········································· 26

第 3 章 使用变量································· 29 3.1 变量简介······································ 30 3.2 变量的作用·································· 30

3.2.1 用作未知值的占位符 ···············30

3.2.2 节省编程时间 ···························31 3.2.3 使代码更清晰 ···························31

3.3 定义变量······································ 31 3.3.1 声明变量 ···································31 3.3.2 变量赋值 ···································32 3.3.3 命名变量 ···································33

3.4 数据类型······································ 35 3.4.1 数字 ···········································36

3.4.2 字符串 ·······································36

3.4.3 布尔类型 ···································40

3.4.4 null ·············································41

3.4.5 undefined ···································41

3.5 动手尝试 3-1:声明变量 ··········· 42 3.6 在脚本中使用变量······················ 43

3.6.1 访问变量 ···································43

3.6.2 将变量添加到文本字符串中 ·····43

3.7 编写 JavaScript 页面 ··················· 44

新手学 JavaScript 编程(第 4 版)

X

3.7.1 创建框架 ···································45 3.7.2 定义变量 ···································45

3.7.3 添加命令 ···································46 3.7.4 修改页面 ···································47

3.8 动手尝试 3-2:创建使用 JavaScript 的 HTML 文档··········· 48

3.9 自测题 ········································· 50

第 4 章 使用函数 ································· 53 4.1 函数的定义 ································· 54 4.2 函数的作用 ································· 54 4.3 构建函数 ····································· 55

4.3.1 声明函数 ···································55 4.3.2 定义函数代码 ···························55 4.3.3 命名函数 ···································56

4.3.4 添加函数参数 ···························57

4.3.5 添加函数返回语句 ···················58

4.4 在脚本中调用函数 ····················· 59 4.4.1 script 标记:头部分或主体

部分············································60

4.4.2 嵌套调用函数 ···························62

4.4.3 调用包含参数的函数 ···············64

4.4.4 调用包含 return 语句的函数····67

4.4.5 定义函数的其他方式 ···············68

4.5 动手尝试 4-1:创建包含函数的 HTML 页面 ································· 71

4.6 作用域/上下文基础知识 ············ 72 4.6.1 全局上下文 ·······························72

4.6.2 函数上下文 ·······························73

4.7 动手尝试 4-2:编写自己的 函数 ············································· 74

4.8 自测题 ········································· 75

第 5 章 JavaScript 运算符··················· 77 5.1 理解运算符类型 ························· 78 5.2 理解算术运算符 ························· 78

5.2.1 加法运算符(+) ··························79

5.2.2 减法运算符(-)···························82

5.2.3 乘法运算符(*)···························83 5.2.4 除法运算符(/) ···························83 5.2.5 取模运算符(%) ·························84 5.2.6 自增运算符(++) ························84 5.2.7 自减运算符 ·······························85

5.2.8 一元加运算符(+) ······················86

5.2.9 一元减运算符(-)·······················86

5.3 理解赋值运算符·························· 87 5.3.1 赋值运算符 ·······························87

5.3.2 加法赋值运算符 ·······················88

5.3.3 减法赋值运算符 ·······················88 5.3.4 乘法赋值运算符 ·······················89

5.3.5 除法赋值运算符 ·······················89

5.3.6 取模赋值运算符 ·······················89 5.4 动手尝试 5-1:修改变量值 ······· 89 5.5 理解比较运算符·························· 90

5.5.1 相等运算符(==) ························91 5.5.2 不等运算符(!=) ·························92 5.5.3 恒等运算符(===)······················93 5.5.4 非恒等运算符(!==)···················93 5.5.5 大于运算符(>) ··························93

5.5.6 小于运算符(<) ··························94

5.5.7 大于等于运算符(>=) ················94 5.5.8 小于等于运算符 ·······················95

5.6 理解逻辑运算符·························· 95 5.6.1 逻辑与运算(&&) ······················96 5.6.2 逻辑或运算符(||) ·······················96 5.6.3 逻辑非运算符(!) ····················96 5.6.4 位运算符 ···································97

5.7 特殊运算符·································· 97 5.8 理解运算符的执行顺序·············· 98 5.9 动手尝试 5-2:true 还是 false···· 99 5.10 自测题······································ 100

第 6 章 条件语句和循环···················· 103 6.1 条件语句的定义························ 104

目 录

XI

6.1.1 条件语句的定义 ··················· 104 6.1.2 条件语句的作用 ··················· 104

6.2 条件语句的使用 ······················· 105 6.2.1 使用 if/else 语句···················· 105

6.2.2 使用 switch 语句 ··················· 112

6.2.3 使用条件运算符 ··················· 114

6.2.4 提示框中获得的用户输入 ··· 115

6.3 动手尝试 6-1:处理用户的 输入············································ 117

6.4 定义循环 ··································· 118 6.4.1 循环的定义 ··························· 118

6.4.2 循环的作用 ··························· 119

6.5 使用循环 ··································· 119

6.5.1 for ··········································· 119 6.5.2 while······································· 126

6.5.3 do while 循环························· 128 6.5.4 for in和 for each in 循环 ······· 128 6.5.5 使用 break 和 continue·········· 128

6.6 动手尝试 6-2:使用 for 循环和 while 循环 ·································· 130

6.7 自测题 ······································· 132

第 7 章 JavaScript 数组 ····················135 7.1 数组的定义 ······························· 136 7.2 数组的作用 ······························· 136 7.3 定义和访问数组 ······················· 137

7.3.1 命名数组································ 137 7.3.2 定义数组································ 137 7.3.3 访问数组元素 ······················· 138 7.3.4 使用 length 属性和循环 ······· 139 7.3.5 修改数组元素值和数组

长度········································ 141 7.4 动手尝试 7-1:使用循环

遍历数组···································· 142 7.5 数组属性和方法 ······················· 143

7.5.1 属性········································ 143 7.5.2 方法········································ 144

7.6 嵌套数组···································· 157 7.6.1 定义嵌套数组 ······················· 157 7.6.2 循环和嵌套数组 ··················· 158

7.7 动手尝试 7-2:嵌套数组 练习 ············································ 160

7.8 自测题········································ 161

第 8 章 对象 ······································ 163 8.1 定义对象···································· 164 8.2 创建对象···································· 164

8.2.1 命名 ······································· 164 8.2.2 单一对象 ······························· 164

8.3 动手尝试 8-1:创建 computer 对象 ············································ 168

8.4 对象结构···································· 168 8.4.1 构造函数 ······························· 169 8.4.2 使用原型 ······························· 173

8.5 帮助访问对象的语句················ 176 8.5.1 for-in 循环 ····························· 176 8.5.2 with 语句 ······························· 177

8.6 动手尝试 8-2:练习使用构造 函数/原型结合模式 ··················· 178

8.7 理解 JavaScript 预定义对象 ····· 179 8.7.1 navigator 对象 ······················· 180 8.7.2 history 对象 ··························· 182

8.8 自测题········································ 183

第 9 章 document 对象 ····················· 185 9.1 定义 document 对象 ·················· 186 9.2 使用文档对象模型···················· 186 9.3 使用 document 对象的属性 ······ 187

9.3.1 集合 ······································· 189

9.3.2 cookie 属性···························· 189 9.3.3 dir 属性 ·································· 190 9.3.4 lastModified 属性 ·················· 190 9.3.5 referrer 属性 ·························· 191

9.3.6 title 属性 ································ 191

新手学 JavaScript 编程(第 4 版)

XII

9.3.7 URL 属性······························· 192 9.3.8 URLUnencoded 属性 ············ 192

9.4 使用 document 对象的方法······ 193 9.4.1 针对元素的 get 方法············· 195

9.4.2 open()和 close()方法 ············· 197 9.4.3 write()和 writeln()方法 ········· 199

9.5 使用 DOM 节点 ························ 200 9.5.1 DOM 节点属性 ····················· 200 9.5.2 DOM 节点方法 ····················· 202

9.6 动手尝试 9-1:向文档中 添加 DOM 节点 ························ 206

9.7 创建动态脚本 ··························· 207 9.7.1 JavaScript 中的样式·············· 207 9.7.2 简单事件处理 ······················· 208 9.7.3 编写动态脚本 ······················· 209

9.8 动手尝试 9-2:尝试修改 属性············································ 211

9.9 自测题 ······································· 212

第 10 章 事件处理程序······················215 10.1 事件处理程序的含义 ············· 216 10.2 事件处理程序的作用 ············· 216 10.3 理解事件处理程序位置和

用法········································· 216 10.3.1 在 HTML 元素中使用事件

处理程序 ···························· 217

10.3.2 在脚本代码中使用事件

处理程序 ···························· 218

10.4 学习事件 ································· 219 10.4.1 单击事件···························· 221 10.4.2 获得焦点和失去焦点

事件 ···································· 222

10.4.3 加载和卸载事件················ 224 10.4.4 重置和提交事件················ 226

10.4.5 鼠标事件···························· 226 10.4.6 键盘事件···························· 227

10.5 动手尝试 10-1:获得焦点和 失去焦点································· 228

10.6 注册事件的其他方式 ············· 229 10.6.1 addEventListener()方法 ···· 230 10.6.2 attachEvent()方法 ·············· 231

10.7 event 对象 ······························· 231 10.7.1 DOM 和 Internet Explorer:

DOM 级别 0 注册·············· 231

10.7.2 使用最新事件注册方法

处理事件 ···························· 232 10.7.3 属性和方法 ······················· 233

10.7.4 事件信息 ··························· 234 10.8 动手尝试 10-2:使用

addEventListener() ·················· 234 10.9 使用事件处理程序创建

脚本········································· 235 10.9.1 显示隐藏内容 ··················· 235 10.9.2 修改内容 ··························· 237

10.10 自测题 ··································· 241

第 11 章 window 对象 ······················· 243 11.1 window 全局对象 ··················· 244 11.2 使用 window 对象的属性 ······ 244

11.2.1 closed 属性 ························ 246 11.2.2 frames 属性························ 246 11.2.3 innerWidth 和 innerHeight

属性 ···································· 246 11.2.4 length 属性························· 247 11.2.5 location 属性······················ 247 11.2.6 name 属性 ·························· 247 11.2.7 opener 属性························ 248

11.2.8 parent、self 和 top 属性···· 248

11.2.9 status 和 defaultStatus

属性 ···································· 248

11.3 动手尝试 11-1:使用 location 和 innerWidth 属性················· 249

11.4 使用 Window 对象的方法······ 250 11.4.1 alert()、prompt()和 confirm()

方法 ···································· 251

目 录

XIII

11.4.2 find()方法··························· 253

11.4.3 home()方法 ························ 253

11.4.4 print()方法 ························· 253

11.4.5 setInterval()和 clearInterval()

方法 ···································· 254

11.4.6 setTimeout()和 clearTimeout()

方法 ···································· 255 11.5 动手尝试 11-2:使用 setTimeout()

和 confirm()方法 ···················· 257 11.6 主窗口和新窗口 ····················· 258

11.6.1 弹出窗口的使用················ 258 11.6.2 打开新窗口························ 258 11.6.3 关闭新窗口························ 261

11.6.4 移动、重置和滚动

新窗口 ································ 262 11.7 自测题 ····································· 267

第 12 章 Math、Number 和 Date 对象 ····································269

12.1 使用 Math 对象 ······················ 270 12.1.1 Math 对象的定义 ·············· 270 12.1.2 如何使用 Math 对象 ········· 270 12.1.3 属性···································· 270

12.1.4 方法···································· 272

12.2 动手尝试 12-1:在页面中显示 随机链接································· 283

12.3 理解 Number 对象·················· 284 12.3.1 属性···································· 284 12.3.2 方法···································· 286

12.4 使用 Date 对象 ······················· 289 12.4.1 属性和方法························ 289 12.4.2 用于获取值的方法 ··········· 291 12.4.3 用于设置值的方法 ··········· 293

12.4.4 其他方法···························· 294

12.4.5 创建日期脚本···················· 295 12.5 动手尝试 12-2:创建 JavaScript

时钟········································· 298

12.6 自测题 ····································· 299

第 13 章 处理字符串 ························· 301 13.1 String 对象简介 ······················ 302

13.1.1 String 对象························· 302

13.1.2 字符串字面量 ··················· 302

13.1.3 区别···································· 302 13.2 使用 String 对象的属性和

方法········································· 303 13.3 String 对象的方法 ·················· 304 13.4 动手尝试 13-1:使用 indexOf()

测试地址································· 314 13.5 使用 cookie ····························· 315

13.5.1 设置 cookie························ 316

13.5.2 读取 cookie························ 318 13.6 动手尝试 13-2:记住名字····· 320 13.7 使用正则表达式 ····················· 321

13.7.1 创建正则表达式 ··············· 321

13.7.2 使用正则表达式测试

字符串 ································ 322

13.7.3 添加标志 ··························· 323

13.7.4 创建强大的模式 ··············· 324

13.7.5 分组表达式 ······················· 327 13.7.6 replace()、match()和 search()

方法 ···································· 328 13.7.7 更多信息 ··························· 330

13.8 自测题 ····································· 331

第 14 章 JavaScript 和表单 ·············· 333 14.1 访问表单 ································· 334

14.1.1 使用表单数组 ··················· 334

14.1.2 使用表单名 ······················· 337 14.1.3 使用 id ······························· 338

14.2 使用表单对象的属性和 方法········································· 339 14.2.1 属性···································· 339

14.2.2 方法···································· 342

新手学 JavaScript 编程(第 4 版)

XIV

14.3 确保表单的可访问性 ············· 343 14.3.1 使用正确的元素和标签

顺序 ···································· 343

14.3.2 使用<label>和</label>

标记 ···································· 344

14.3.3 使用<fieldset></fieldset>

标记 ···································· 344 14.3.4 不要假设客户端会支持

客户端脚本 ························ 345

14.4 验证 ········································· 345 14.4.1 简单验证···························· 346 14.4.2 技术···································· 347 14.4.3 复选框和单选按钮 ··········· 348

14.5 动手尝试 14-1:请求数字····· 350 14.6 HTML5 和表单······················· 351

14.6.1 新元素································ 351

14.6.2 新输入类型························ 355

14.6.3 新特性································ 356

14.6.4 HTML5 表单验证 ············· 357 14.7 动手尝试 14-2:使用 HTML5

或 JavaScript 验证电话号码 ····· 358 14.8 自测题 ····································· 359

第 15 章 高级技术简介······················361 15.1 使用图像 ································· 362 15.2 动手尝试 15-1:访问性更强的

翻转效果································· 364 15.3 JavaScript 和框架 ··················· 365

15.3.1 框架的用法························ 365

15.3.2 访问框架···························· 365

15.3.3 打破框架限制···················· 368 15.4 调试脚本 ································· 368

15.4.1 错误类型···························· 368

15.4.2 使用警告和控制台 ··········· 371

15.4.3 使用 Lint 工具 ··················· 372

15.4.4 浏览器开发工具················ 373 15.5 JavaScript 和可访问性 ··········· 374

15.5.1 将内容与显示分离 ··········· 374 15.5.2 内容增强 ··························· 376

15.6 动手尝试 15-2:使该代码具有 可访问性································· 377

15.7 JavaScript 安全 ······················· 378 15.7.1 安全和签名脚本 ··············· 379 15.7.2 页面保护 ··························· 379

15.8 AJAX 和 JSON ······················· 381

15.8.1 AJAX ································· 381 15.8.2 JSON·································· 386

15.9 自测题 ····································· 390

第 16 章 JavaScript 库、HTML5 和 Harmony····························· 393

16.1 使用 jQuery····························· 394 16.1.1 获取 jQuery ······················· 394

16.1.2 开始使用 jQuery:

document.ready()················ 394 16.1.3 使用选择器 ······················· 395 16.1.4 修改类································ 396 16.1.5 用于创建特效的方法 ······· 398 16.1.6 深入阅读 ··························· 400

16.2 动手尝试 16-1:使用 jQuery 创建特效····················· 400

16.3 其他 JavaScript 库 ·················· 401

16.3.1 jQuery Mobile···················· 401

16.3.2 php.js·································· 401

16.3.3 node.js ································ 401 16.3.4 MooTools ··························· 401

16.3.5 Three.js······························· 401 16.4 JavaScript 和 HTML5 ············· 402

16.4.1 <canvas>元素 ···················· 402

16.4.2 拖放···································· 408 16.5 动手尝试 16-2:拖放············· 411

16.6 ECMAScript Harmony············ 413 16.6.1 关键字 const 和 let ············ 413

16.6.2 默认参数值 ······················· 415

目 录

XV

16.6.3 类········································ 416

16.6.4 关于 Harmony 的更多

内容 ···································· 417

16.7 深入阅读 ································· 417 16.8 自测题 ····································· 418

附录 A 自测题答案···························· 421

JavaScript 简介

关键技能与概念 ● 文本编辑器、WYSIWYG(所见即所得)编辑器和 Web 浏览器的使用 ● JavaScript 的定义 ● JavaScript 与其他语言的区别

第 章

新手学 JavaScript 编程(第 4 版)

2

欢迎学习本书!显然你有兴趣学习 JavaScript,但不确定需要了解哪些知识才能熟练地

使用 JavaScript。本章将讲解一些关于它的基本知识,包括 JavaScript 的定义、优势和局限性,

解释如何使用 JavaScript 创建更富有魅力的动态网页,并简要介绍 JavaScript 的发展史。

JavaScript 在万维网中无处不在。使用 JavaScript 使网页更具交互性,从而对浏览者的

操作做出反应,并给 Web 页面增加些特效(视觉或其他方面的特效)。

JavaScript 作为推荐给初级 Web 开发者学习的一种语言,经常与 Hypertext Markup

Language(超文本标记语言,HTML)和 Cascading Style Sheets(层叠样式表,CSS)一起使用(不

管用于构建商务网站还是娱乐网站)。当然可以只使用 HTML 和 CSS 构建网页,但通过编

写脚本,JavaScript 可以帮你实现静态页面无法提供的一些功能。

1.1 预备知识

开始学习 JavaScript 之前,需要具备(或学习)下列技术的基本知识:

● HTML 和 CSS

● 文本编辑器

● Web 浏览器

● JavaScript 的不同版本

具有这些知识有助于你顺利地完成本书的学习(本章稍后的内容将对 JavaScript 的不同

版本进行讨论)。该书针对初学者,所以不要求了解其他编程/脚本语言,也不要求之前具

备 JavaScript 方面的经验。

如果对上面提到的技术都不熟悉,可以逐个认真研究一下。

1.1.1 HTML 和 CSS 基础知识

不需要你成为 HTML 专家,但至少要清楚该在什么位置使用哪些元素(如 head 和 body

元素)以及如何添加特性。本书会在文档头部分(在<head>和</head>标记之间)和文档体部分

(在<body>和</body>标记之间)引用脚本。

有时需要在标记中添加特性从而使脚本正常运行。如下面代码所示,使用 id 特性命名

表单(form)元素:

<input type="text" id="thename">

了解使用标记和特性的基础知识后,在学习 JavaScript 过程中就不会再遇到 HTML 方

面的问题。

如果没掌握 HTML 的基础知识,可以通过许多媒体快速学习。例如买本相关书籍或在网

上搜索帮助信息。推荐Wendy Willard 撰写的HTML: A Beginner’s Guide, Fourth Edition(McGraw-

第 1 章 JavaScript 简介

3

Hill Professional,2009)。要在网上查找有关 HTML 的信息,可访问 www.scripttheweb.com/html

和 www.w3.org/wiki/The_basic_of_HTML。

偶尔也需要使用 CSS 为网页添加和修改显示效果。在本书中主要通过 JavaScript 来动

态修改 CSS 属性。两个可供学习 CSS 的推荐网址是 www.scripttheweb.com/css 和 www.w3.

org/wiki/css_basics。

1.1.2 文本编辑器和 Web 浏览器基础知识

在深入学习和开始编写 JavaScript 之前,必须会使用文本编辑器或 HTML 编辑器以及

Web 浏览器。这些工具将帮助你完成代码的编写。

1. 文本编辑器

许多文本编辑器和 HTML 编辑器都支持 JavaScript。如果学习过 HTML,之前很有可

能使用过 HTML 编辑器来创建 HTML 文件,那么可以继续使用。

不过一些 HTML 编辑器在添加 JavaScript 代码方面存在问题(如当保存文件时会改变

JavaScript 代码的位置或者改变代码本身)。使用 WYSIWYG(所见即所得)编辑器时,这些

问题会更常见。最好使用允许编写自己代码的 HTML 编辑器(如 Adobe Dreamweaver)、代

码编辑器(如 NetBeans)或普通文本编辑器(如 Notepad、TextPad 和 Simple Text)。

2. Web 浏览器

如果之前一直在编写 HTML,浏览器也不用更换。不过一些浏览器在处理较新版本的

JavaScript 时会出现问题。可选择与 JavaScript 兼容的任意 Web 浏览器。推荐使用下列任意

一种浏览器来测试 JavaScript 代码:

● Microsoft Internet Explorer 9.0或更新版本(如果无法在诸如 Windows XP 的操作系

统中升级,可以使用 8.0)

● Mozilla Firefox 14.0 或更新版本

● Google Chrome 20.0 或更新版本

● Opera 12.0 或更新版本

这些浏览器的新版本一直在研发中,它们将继续支持更多功能。

图 1-1 展示了使用 Microsoft Internet Explorer 查看网页时的样子,图 1-2 则使用 Mozilla

Firefox 访问相同的网页,它们显示了部分浏览器访问网页时的表现。

如果旧的浏览器无法升级,许多特性将无法在该浏览器中正常工作(多数特性将在之后

讨论)。即使如此,也不用放弃,本书依然可以帮助你学习 JavaScript 语言。

新手学 JavaScript 编程(第 4 版)

4

图 1-1 使用 Microsoft Internet Explorer 查看网页

图 1-2 使用 Mozilla Firefox 查看网页

第 1 章 JavaScript 简介

5

注意: 即使在开发中可以使用最新版本的浏览器,用户也不一定会使用,所以一定要明白旧

版本浏览器无法支持哪些功能。本书将讲解如何处理诸多此类问题。

1.1.3 版本

浏览器(或其他软件)使用的 JavaScript 版本可能很难识别,因为不同的浏览器会使用不同

的名字来表示 JavaScript(如在 Microsoft Internet Explorer 中称之为 JScript),而且它们也都会有

自己的一套版本号。最好查看每种浏览器支持的ECMAScript版本来确定它所遵循的标准规范。

在 en.wikipedia.org/wiki/ECMAScript#Dialects 中可以查看每个浏览器支持的版本。 ECMAScript 是 JavaScript 语言的国际标准名称和规范,它不是一门新语言,而是为

JavaScript、JScript 和其他各种 JavaScript 实现制定了共同标准。访问 www. ecmascript. org/docs. php 可以获得 ECMAScript 的更多相关信息。

在撰写本书时,本章前面推荐的浏览器都至少支持 ECMAScript 5。

1.1.4 与 Java 的区别

JavaScript 和 Java 是两门不同的编程语言。Java 是一种在程序执行之前必须被编译的

编程语言(通过软件将高级代码转换成机器语言来运行程序),访问 docs.oracle.com/javase/ tutorial/可获得与 Java 语言相关的更多信息。

1.1.5 与其他语言的相似之处

JavaScript 确实与其他编程或脚本语言有相似之处。如果之前使用过 Java、C++或 C 语

言,就会发现语法上的相似之处,这可以帮助你快速掌握 JavaScript。作为脚本语言,

JavaScript 也与 Perl 这样的语言有类似之处——通过解释器运行而非预先编译。 具有任何编程或脚本使用经验都可以让你学习 JavaScript 变得更容易,不过并不是必

需的。

问:你提到可以选择文本编辑器或 HTML 编辑器,但我不太确定这意味着什么。什么是

文本编辑器,可在何处找到呢? 答:文本编辑器是用来保存和编写输入文本的程序。文本编辑器从简单到复杂,有着众

多选择:Notepad、WordPad 和 Simple Text 等。像 NoteTab 或 TextPad,你可以购买

或者从网络下载。 HTML 编辑器是一种更复杂的文本编辑器,允许通过单击按钮或其他方式来添

加代码——通常称为所见即所得(简称 WYSIWYG)编辑器。推荐使用不会更改手动添

专家解答

新手学 JavaScript 编程(第 4 版)

6

加的代码的HTML编辑器(如Adobe Dreamweaver和 Softpress Freeway)或普通文本编

辑器。 出于 JavaScript 编程的目的,也可以选择面向编程的程序(如 NetBeans IDE),它们

提供像代码突出显示、自动完成、调试等多种功能。

问:使用文本编辑器究竟需要知道什么呢? 答:基本上只需要知道如何输入普通文本,将文件保存为使用.html、.css 或.js 扩展名的

文件,必要时能够重新打开并编辑即可。不需要了解特殊功能,因为 HTML、CSS和 JavaScript 文件都由普通文本组成。

问:使用浏览器需要知道什么呢?

答:必须知道的是如何在电脑或 Web 上打开本地 HTML 文件和如何重新加载页面。如果

不清楚如何打开本地 HTML 文件,请打开浏览器,然后找到 File 文件菜单。查找

Open、Open File 之类的选项并选择。像使用其他程序一样定位到要打开的文件。图 1-3显示了该选项在 Microsoft Internet Explorer 中的位置。

图 1-3 Open 选项在 Microsoft Internet Explorer 中的位置

问:从哪里能获得你提到的浏览器呢?

答:下面是浏览器的链接: ● Microsoft Internet Explorer www.micorsoft.com/ie ● Mozilla Firefox www.mozilla.com/firefox ● Google Chrome www.google.com/chrome/ ● Opera www.opera.com

第 1 章 JavaScript 简介

7

1.2 开始学习 JavaScript

JavaScript是Netscape Communication Corporation和Sun Microsystem Inc.共同努力的产

物。它于 1995 年 12 月 4 日发布,此时 Netscape Navigator 2.0 仍然处于 Beta 版本。JavaScript 1.0 在新浏览器中得到应用(Javascript 发布之前被称为 LiveScript)。

JavaScript 是一门基于原型的客户端脚本语言,可应用于众多环境。接下来通过逐个分

析其重要特点来解释这个定义。

1.2.1 基于原型

基于原型意味着 JavaScript 是一门面向对象的编程语言,它可以使用对象。然而 JavaScript中的对象不是基于类的,它的类与实例之间并没有区别。相反,对象通过 prototype 属性继承自

其他对象。第 8 章将讲解如何使用 JavaScript 对象。直到掌握了 JavaScript 的一些其他特性后,

才会对基于原型有更深入的理解。

1.2.2 客户端

客户端意味着 JavaScript 运行在浏览者使用的客户端软件中,而不是在生成页面的网

站服务器上。这种情况下,客户端通常是 Web 浏览器(尽管 ECMAScript 也可在其他环境中

运行,如 Adobe Acrobat 和 Adobe Flash 等)。下面将分析服务器端和客户端语言是如何工

作的。

1.服务器端语言

服务器端语言需要从网页或 Web浏览器中获取信息,然后发送到在主机的服务器上运

行的程序中,接着将该信息发送回浏览器。因此在浏览器中显示程序结果之前,必须经历

一个先发送然后从服务器获取信息的中间步骤。 服务器端语言通常可以为程序员提供一些客户端语言无法实现的特性,如在 Web 服务

器上保存信息以备后用,或使用最新信息更新网页并保存这些更新。 但可能受限于自身的能力,它无法访问客户端的一些特性,而这正是客户端语言能够

做到的(如浏览器窗口的宽度、提交到服务器之前表单中的内容)。

2.客户端语言

客户端语言直接通过浏览者使用的客户端软件运行。对于 JavaScript,客户端通常是

Web 浏览器。因此,JavaScript 直接在浏览器中运行而不需要额外的步骤来发送和接收 Web服务器信息。

浏览器读取并解释客户端语言的代码,直接将结果返回给浏览者,不必首先从服务器

获取信息。这样使某些任务运行速度更快。 客户端语言也可以访问一些服务器语言无法访问的客户端特性。但缺少在 Web 服务器

新手学 JavaScript 编程(第 4 版)

8

上保存和更新文件的能力,而服务器端语言可做到这一点。

注意: 使用 XMLHttpRequest 对象允许 JavaScript 发送和请求服务器端数据。第 15 章将对这

种技术进行简单介绍。

客户端语言对于一些任务特别有效,如处理文档内容或在将信息发送到服务器端程序

或脚本之前对其进行验证。例如,当用户单击链接或按下按钮时,JavaScript 可改变网页中

一个或多个元素的内容(其他许多用户操作也可以实现)。 JavaScript 可在表单数据被提交到服务器端程序处理之前,对输入表单的信息进行检

查。这样可以通过阻止提交不准确或不完整的信息来减轻 Web 服务器压力。与其一直运行

服务器程序直到获得正确信息,不如一次性将正确的数据信息发送到服务器。

注意: 尽管 JavaScript 可以帮助验证发送到服务器的信息,但无法取代服务器端验证,因为

用户可能禁用 JavaScript 或者使用的设备无法运行 JavaScript(JavaScript 验证会被忽略)。出

于安全目的,无论是否采用 JavaScript 验证,都必须进行服务器端验证。

1.2.3 脚本语言

脚本语言在运行之前不需要编译。所有解释都在客户端动态完成。 对于常规的编程语言,在运行程序之前必须使用特定的编译器来编译代码,从而确保

代码中没有语法错误。而对于脚本语言,客户端在加载时完成对代码的解释。因此可以快

速测试代码的结果。不过直到脚本运行后,才能捕捉到错误,如果无法正常处理这些错误,

会引起客户端错误。对于 JavaScript,错误处理取决于浏览器或浏览者使用的其他客户端。

1.3 汇总

在学习上述知识点后,关于 JavaScript 如何在浏览器中运行、在哪里编写 JavaScript代码,以及浏览器如何区分网页中的 JavaScript 和其他内容,本章做出了简单解答,不过

下一章将会作深入讲解。 JavaScript 通过将自身添加到已存在的 HTML 文档中,从而在浏览器中运行(直接添加,

或通过引用外部脚本文件)。可以在 HTML 代码中添加特殊的标记和命令,以指示浏览器

它需要运行一个脚本。 浏览器遇到特殊标记后,会解释 JavaScript 命令并执行编写好的代

码。因此简单地编辑 HTML 文档,就可以开始在网页中使用 JavaScript 并查看结果。 例如,下面的代码在 HTML 文件添加了一些 JavaScript 代码,以便向网页中写入一些

文本。注意<script>和</script>的添加。它们之间的内容就是 JavaScript 代码。

第 1 章 JavaScript 简介

9

<html> <body> <script> document.write("This writes text to the page"); </script> </body> </html>

下一章讨论如何使用<script>和</script> HTML 标记在 HTML 文件中添加脚本。这将

是你成为一名 JavaScript 程序员要跨出的第一步。

1.4 在线资源

访问下面的资源可以获得更多关于 JavaScript 的在线帮助信息: ● 一个可供查找可运行示例的网址:www.scripttheweb.com/js/ ● 一个包含剪切粘贴脚本的出色教学网站:www.javascriptkit.com ● 一个帮助 Javascript 程序员解决问题的网址:www.webxpertz.net/forms

1.5 动手尝试 1-1:使用 JavaScript 输出文本

该项目演示在浏览器中加载 HTML 文档时 JavaScript 是如何被处理的。这个脚本使用

JavaScript 在浏览器中输出一行文本。

步骤: (1) 将下列代码复制并粘贴到文本编辑器中:

<html> <body> <script> document.write("This text was written with JavaScript!"); </script> </body> </html>

(2) 将文件保存为 pr1_1.html 并在浏览器中打开。你将看到由 JavaScript 输出的一行文

本(在浏览器的 File 菜单找到如 Open、Open File 之类的选项,并选择一个文件将其打开。

可以像在其他程序中那样浏览到想要打开的文件)。

总结: 在该项目中,复制并粘贴了一块代码到文本编辑器并保存了文件。当你在 Web 浏览器

中打开保存文件时,一行文本将会显示在浏览器中。该文本是由 JavaScript 输出到浏览器

窗口的。第 2 章将进一步讨论此类脚本的工作方式。

该标记告诉浏览器:随后是

JavaScript代码

该标记告诉浏览器:JavaScript 代码至此结束

本行代码将引号

之内的文本输出

到网页

新手学 JavaScript 编程(第 4 版)

10

1.6 自测题

1. 在下列哪种语言中可以使用 JavaScript?

A. Perl B. C++ C. HTML D. SGML

2. 在下列选项中,哪个必须使用 JavaScript? A. Web 浏览器 B. C++编译器 C. 500GB 硬盘驱动器 D. DVD-RW 驱动器

3. 你可以选择兼容于 的浏览器。

A. Flash B. VBScript C. JavaScript D. Windows XP

4. JavaScript 和 Java 是相同的语言。 A. 正确 B. 错误

5. 是 JavaScript 语言的国际标准名称和规范。

A. JScript B. LiveScript C. ECMAScript D. ActionScript

6. JavaScript 与其他编程和脚本语言有相似之处。 A. 正确 B. 错误

7. JavaScript 在正式发布之前被称为 。

A. Java B. JavaCup C. LiveScript D. EasyScript

8. JavaScript 的特点是 。 A. 基于原型 B. 基于类

第 1 章 JavaScript 简介

11

C. 缺少对象机制 D. 不使用对象

9. 客户端语言通过浏览者使用的 直接运行。 A. 服务器 B. 客户端 C. 监视器 D. 律师

10. 当在网页中使用表单时,客户端语言可以帮助做什么呢? A. 在服务器上保存信息 B. 在向服务器发送信息之前进行验证 C. 使用新信息更新文件并将文件保存 D. 起不到帮助作用

11. 语言不需要在运行之前编译。 A. 编程 B. 服务器端 C. 脚本 D. 计算机

12. 对于脚本语言,在客户端加载代码时进行解释。 A. 正确 B. 错误

13. 在 JavaScript 中,什么可以处理脚本中的错误呢? A. Web 服务器 B. 编译器 C. Web 服务器上的程序 D. 客户端/Web 浏览器

14. 如何将 JavaScript 添加到网页中? A. 不能。必须单独进行编译和加载。 B. 从服务器上的已编译程序中获得 C. 将代码保存至文件并打开 D. 添加到 HTML 文档中

15. 为了插入 JavaScript 代码,需要在网页中添加什么呢? A. <script>和</script> HTML 标记 B. JavaScript 代码单词 C. <javascript>和</javascript> HTML 标记 D. <java>和</java> HTML 标记