21天学通JavaScript(第4版)(txt+pdf+epub+mobi电子书下载)


发布时间:2020-06-25 12:41:59

点击下载

作者:马翠翠

出版社:电子工业出版社

格式: AZW3, DOCX, EPUB, MOBI, PDF, TXT

21天学通JavaScript(第4版)

21天学通JavaScript(第4版)试读:

前言

千里之行,始于足下!——老子“21天学编程系列”自2009年1月上市以来,一直受到广大读者的青睐。该系列中的大部分图书从一上市就登上了编程类图书销售排行榜的前列,很多大中专院校也将该系列中的一些图书作为教材使用,目前这些图书已经多次印刷、改版。可以说,“21天学编程系列”是自2009年以来国内原创计算机编程图书最有影响力的品牌之一。

为了使该系列图书能紧跟技术和教学的发展,更加适合读者学习和学校教学,我们结合最新技术和读者的建议,对该系列图书进行了改版(即第4版)。本书便是该系列中的JavaScript分册。本书有何特色

1.细致体贴的讲解

为了让读者更快上手,本书特别设计了适合初学者的学习方式,用准确的语言总结概念、用直观的图示演示过程、用详细的注释解释代码、用形象的比方帮助记忆。效果如下:知识点介绍 准确、清晰是其显著特点,一般放在每一节开始位置,让零基础的读者了解相关概念,顺利入门。范例 书中出现的完整实例以章节顺序编号,便于检索和循序渐进地学习、实践,放在每节知识点介绍之后。示例代码 与范例编号对应,层次清楚、语句简洁、注释丰富,体现了代码优美的原则,有利于读者养成良好的代码编写习惯。对于大段程序,均在每行代码前设定编号,便于学习。运行结果 对范例给出运行结果和对应图示,帮助读者更直观地理解范例代码。代码解析 将范例代码中的关键代码行逐一进行解释,有助于读者掌握相关概念和知识。习题 每章最后提供专门的测试习题,供读者检验所学知识是否牢固掌握。贴心的提示 为了便于读者阅读,全书还穿插着一些技巧、提示等小贴士,体例约定如下。

● 提示:通常是一些贴心的提醒,让读者加深印象或提供建议,或者解决问题的方法。

● 注意:提出学习过程中需要特别注意的一些知识点和内容,或者相关信息。

● 警告:对操作不当或理解偏差将会造成的灾难性后果给出警示,以加深读者印象。

经作者多年的培训和授课证明,以上讲解方式是最适合初学者学习的方式,读者按照这种方式会非常轻松、顺利地掌握本书知识。

2.实用超值的DVD光盘

为了帮助读者比较直观地学习,本书附带DVD光盘,内容包括多媒体视频、电子教案(PPT)和实例源代码等。

● 多媒体视频

配有长达23小时的教学视频,讲解了关键知识点界面操作和书中的一些综合练习题。作者亲自配音、演示,手把手教会读者使用。

● 电子教案(PPT)

本书可以作为高校相关课程的教材或课外辅导书,所以作者特别为本书制作了电子教案(PPT),以方便老师教学使用。

● 职场面试法宝

本书附赠“职场面试法宝”,含常见的职场经典故事及测试题。

3.提供完善的技术支持

本书的技术支持论坛为http://www.rzchina.net,读者可以在上面提问交流。另外,论坛上还有一些小的教程、视频动画和各种技术文章,可帮助读者提高开发水平。推荐的学习计划

本书作者在长期从事相关培训或教学实践过程中,归纳了最适合初学者的学习模式,并参考了多位专家的意见,为读者总结了合理的学习时间分配方式,列表如下:本书适合哪些读者阅读

本书非常适合以下人员阅读:

● 打算进入JavaScript编程大门的新手;

● Web开发的前沿程序员;

● 各大中专院校的在校学生和相关授课老师;

● 其他编程爱好者。第一篇基础篇第1章 JavaScript概述“千里之行,始于足下”。这句千古遗训蕴含着深刻的道理,在计划安排停当之后需要开始落实行动。只有从现在的脚下开始出发,才能达千里之外的目的地。学习JavaScript最好从了解它的起源开始,了解其产生的背景,为了什么产生,从而知道其主要应用场合,对今后的学习和目标的建立有莫大的帮助。本章将向读者讲解JavaScript的背景和现在的状况,以及未来可能的发展方向。通过本章的学习,读者将学会编写一个最简单的JavaScript程序并知道如何运行。

● 了解JavaScript产生的背景。

● 了解JavaScript和其他脚本语言的异同。

● 了解如何编写一个JavaScript程序并运行它。

● 牢记编写JavaScript程序的注意事项。

以上几点是对读者在学习本章内容时所提出的基本要求,也是本章希望能够达到的目的。读者在学习本章内容时可以将其作为学习的参照。1.1 初识JavaScript

JavaScript是世界上使用人数最多的程序语言之一,几乎每一个普通用户的电脑上都存在JavaScript程序的影子。然而绝大多数用户却不知道它的起源,以及如何发展至今。JavaScript程序设计语言在Web领域的应用越来越火,未来它将会怎样发展,本节将对这部分内容分别讲述。1.1.1 理解JavaScript的历史

在互联网形成的初期,Web技术远远没有像今天这样丰富以至于让人难以选择。当时,最基本的在Web客户端进行数据有效性验证都非常麻烦,浏览器端的用户体验效果非常单调,几乎没有交互性。今天所看到的全动态Flash、SilverLight、JavaScript等精彩应用在当时都没有,有的只是纯HTML静态页。

基于这样的现状,Netscape公司在它的Navigator Web浏览器中增加了脚本功能,以简单的方式实现浏览器中的数据验证,该脚本名为LiveScript。与此同时,Java技术也逐渐红火,其特点也正好能弥补Web客户端交互性方面的不足。Netscape公司在其Navigator浏览器中支持JavaApplet时,考虑JavaApplet与LiveScript目标的相似性,将LiveScript更名JavaScript,可以理解为其欲借Java之势以求发展。

JavaScript语言刚推出就在市场获得巨大的成功,这表现在Navigator浏览器的用户量上。当JavaScript语言的使用形成一种大趋势之后,微软的IE浏览器也增加对JavaScript语言的支持,这加快了JavaScript语言发展的速度。

微软公司的IE浏览器搭乘Windows操作系统这艘巨舰在市场上获得了空前的成就,同时微软也实现了一门兼容JavaScript的脚本语言,命名为JScript。如今对JavaScript的支持已经成为Web浏览器中不可缺少的技术。提示很多有名的编程语言起初都是由个人或小团体创造出来,逐步完善并发展壮大。1.1.2 JavaScript标准

众多Web浏览器对JavaScript的支持也很不一致,相同的语言特性在不同的浏览器中会有所差异。这种差异对开发者影响极大,开发时不得不为不同的浏览器编写不同的代码,这种难堪的局面一直持续到JavaScript标准的制定。1997年发布了ECMA-262语言规范,将JavaScript语言标准化并重命名为ECMAScript,现在各种浏览器都以该规范作为标准。提示语言和系统接口标准化后可以大大减轻应用开发人员的负担,不用为不同的语言特性或接口编写不同的代码,这也增强了软件的可移植性。1.1.3 JavaScript的现况

随着AJAX的技术大潮,JavaScript重新受到Web开发者的重视。在此之前JavaScript主要应用还是在客户端实现一些数据验证等简单工作,多媒体交互应用被类似Flash的技术抢占了市场。正当JavaScript处于低潮的时候,AJAX技术被开发出来了,简单地说就是利用JavaScript的异步更新机制实现Web页的局部刷新。当一个页面不需要全部重新加载,只要加载部分数据即可的时候,互联网的运行速度便大大加快了。JavaScript因此在Web开发中站在了一个更加重要的位置。如图1-1所示是JavaScript在浏览器中的层次结构。图1-1 浏览器中的JavaScript

很多开发者开始挖掘JavaScript其他方面的潜力,打算发现类似AJAX那样令人吃惊的东西。结合W3C现行的DOM规范,JavaScript表现出了惊人的魅力,涌现出很多基于Web的应用程序,这是在Web客户端方面。在服务器端技术中,微软公司也将JavaScript纳入了.NET语言的范畴,使其成了ASP.NET的语言工具,开发者不必重新学习语言即可运用ASP.NET技术。如今基于JavaScript的应用不胜枚举,读者朋友大可上互联网去了解更多的信息。提示自从AJAX技术出现之后,人们重新重视了JavaScript的价值,如今不少开发者使用JavaScript开发出极具价值的通用程序框架,如一些流行的WEB UI库。1.1.4 JavaScript的发展趋势

语言永远被当做工具,这一点从来都没有被改变过,以后也不会。例如,在Windows平台上,使用ADODB组件可以使JavaScript能处理支持SQL的数据库中的数据,使用FSO组件可以实现本地文件IO功能。这一切都说明了JavaScript位于应用开发的最顶端,其与低层技术的实现无关,层次结构如图1-2所示。图1-2 JavaScript在系统中的位置

尽管平台技术不断发生变化,JavaScript仍将以不变的形式去使用平台提供的能力从而适应新的需求。未来的一段时间内,Web开发将是开发者众聚之地,也是JavaScript变得紫红的时代。1.2 简单的脚本语言

JavaScript是一门脚本语言,它如导演手中的剧本命令一样,使原来独立零散的演员按剧情协调组织表演从而获得观众的掌声。脚本需要简单易懂,有针对性以能运用于一个特定的场合。本节将向读者介绍更多有关脚本的知识。1.2.1 认识脚本语言

脚本语言是一种应用程序扩展语言,用于系统的扩展,使其按用户的意愿去运行。所有的基础功能由系统提供,脚本语言在更高层次描述如何调用系统的接口。和其他编程语言不同,脚本语言通常不需要经历编译和链接这些阶段,大都直接解释执行。也有的语言需要编译,但这是为了执行得更快一点。提示与电影脚本的含义及作用相似,JavaScript是用于实现程序中的事务流程控制,组织多个逻辑对象一起完成工作。1.2.2 脚本语言的分类

如今成熟的脚本语言非常多,根据使用方式的不同分成嵌入式和非嵌入式两类。嵌入式脚本语言,这类语言通常为了应用程序的扩展而开发出来。解释器通常嵌入在被扩展的应用程序中,成为宿主程序的一部分。例如,Lua语言、Python语言的嵌入性也比较好,如今这两者在游戏开发领域应用较多,通常作为游戏软件的脚本系统或配置文件。根据笔者的经验,Lua语言无论在嵌入性和运行效率上都远超过其他语言,将Python语言纳入嵌入式语言分类中有些勉强,因为其更像其他独立运行的语言。

非嵌入式脚本语言,这类语言无须嵌入其他程序中,如本书所讲的JavaScript语言。这些语言主要应用不是作为系统扩展,而是实现一般的任务控制。提示将语言分类比较勉强,因为其在开发的时候大都针对某一类应用而不先考虑属于某一类。1.2.3 JavaScript的作用

JavaScript主要运用在浏览器端,处理用户的输入实现交互功能。例如,在会员注册页面将数据发送到服务器前,使用JavaScript程序检查用户输入的数据是否符合要求。可以使用JavaScript通过DOM对象操作HTML页中的各个节点元素,动态修改HTML文档的内容,实现基于Web的应用。JavaScript可以结合数据库组件、文件系统组件等扩展组件实现任何想要的功能。1.2.4 JavaScript和其他语言的异同

JavaScript和其他脚本语言一样,都应用于高级任务控制,大多都是解释执行,都属于弱类型语言,数据类型在运行时决定,实现自动内存管理机制,资源的分配策略相似。但不同的是,JavaScript运行于浏览器中,主要用于Web开发,这方面它和VBScript一样;而其他众多脚本语言都运用于特定的软件环境以帮助实现任务自动化,如3ds Max的MaxScript,使用该脚本语言可以使3ds Max产生和手动操作图形界面命令一样的效果,这就是任务的自动化。1.2.5 JavaScript与Java的异同

令知情人士难以忍受的是很多不了解的人都以为JavaScript和Java存在莫大的关系,事实上二者毫无关系。勉强的说法就是这两者都属于编程语言,都带有“Java”字样。而实际上,JavaScript是一门基于Web浏览器、解释执行、轻量级编程语言;Java则是运行于Java虚拟机、编译执行、重量级编程语言。有关JavaScript的背景知识已经介绍了不少,在此不再赘述。

Java是一个庞大复杂的技术体系及其开发工具的总称,Java语言是使用Java技术的主要工具。Java语言编写的程序通过编译器编译为字节码目标程序,执行时交由Java虚拟机处理,其具有非常强大的跨平台特性,这些和JavaScript截然不同。提示读者可以认为JavaScript和Java之间没有任何联系。1.3 第一个JavaScript程序

学习每一门新语言,大致了解了它的背景之后,最想做的莫过于先写一个最简单的程序并成功运行。如果最初连续几个程序都无法成功编译或运行,初学者学习的信心多少会受些打击,这是正常现象。本节将带领读者对JavaScript进行第一次实践尝试,用它编写一个最简单且流行了几十年的“Hello World”程序。1.3.1 预备知识

JavaScript程序运行于浏览器中,因此这里的“Hello World”程序将嵌入在HTML文档里,使用document对象的write方法将字符串“Hello World”输出显示在浏览器客户区里。另一种常用的信息输出方法是使用window对象的alert方法,以消息框的形式输出信息。JavaScript程序嵌入HTML文档的常用方式就是将代码放在“ 11

12

另一种方式是将JavaScript代码直接嵌入HTML标签中,代码如下所示。01 02 03 <!-- ---------标题开始------ -------------------------> 04 05 06 07 08 09

第三种方式是将JavaScript程序以外部文件的形式链接到当前HTML文档中,本书不使用这种方式,限于篇幅在此不作讲解,读者可以查阅相关资料。提示JavaScript使用形式灵活多样,除上面所提到的常用方式以外的方法都属于编程技巧范畴。1.3.2 选择JavaScript编辑器

JavaScript源程序是文本文件,因此可以使用任何文本编辑器来编写程序源代码,如Windows操作系统里的“记事本”程序。为了更快速地编写程序并且降低出错的概率,通常会选择一些专业的代码编辑工具。专业的代码编辑器有代码提示和自动完成功能,笔者推荐使用Aptana Studio,它是一款很不错的JavaScript代码编辑器,其安装初始界面如图1-3所示。图1-3 开始安装Aptana Studio

安装完毕后运行Aptana Studio,即可进入程序的主界面,如图1-4所示,使用Aptana Studio可以快速编写JavaScript程序。如果使用的是Firefox浏览器,还可以在该软件中调试JavaScript程序。图1-4 Aptana Studio主界面注意为了简单起见,本书所有的例程都以IE浏览器作为标准。1.3.3 编写“Hello World”程序

下面正式开始编写“Hello World”程序,推荐使用记事本或上一节介绍的Aptana IDE。为简单起见,这里使用记事本编写程序。【范例1-1】编写并运行最经典的入门程序,输出“Hello World! ”。打开记事本,输入如示例代码1-1所示的代码并将文件另存为网页文件“helloworld.htm”。示例代码1-101 02 03 06 07 【运行结果】双击网页文件运行程序,其结果如图1-5所示。图1-5 Hello World程序的运行结果【代码解析】第4行是JavaScript程序代码,第3、5行是标准HTML标签,该标签用于在HTML文档中插入脚本程序。其中的“language”属性指明了“”。1.3.4 浏览器对JavaScript的支持

在互联网发展的过程中,几大主要浏览器之间也存在激烈的竞争。JavaScript是Netscape公司的技术,其他浏览器并不能和Navigator一样良好地支持JavaScript,因为得不到使用许可。微软公司为能使其IE浏览器能抢占一定市场份额,于是在IE中实现了称为JScript的脚本语言,其兼容JavaScript,但是和JavaScript间仍然存在版本差异。因此,编程人员在编码时仍然须考虑不同浏览器间的差别。

为能使JavaScript脚本语言标准化,Netscape、微软等公司和其他一些团体打算建立一个语言标准。1997年发表了第一套脚本语言规范,即ECMA-262。新语言规范下的JavaScript命名为ECMAScript,因为“JavaScript”这名字也存在许可的问题。现在的浏览器都以ECMAScript为规范,这样可以大大减少编程人员的负担,不过差别总还是存在的,因此编程时还得引起注意,现举例如何查询当前正在使用的浏览器类型。【范例1-2】检测当前浏览器的信息,输出浏览器的名称、版本号、发行代号,如示例代码1-2所示。示例代码1-201 // 程序结束【运行结果】在浏览器中打开网页文件运行程序,其结果如图1-6所示。图1-6 浏览器信息【代码解析】该示例读取navigator对象的相关属性以取得当前浏览器的信息。第2行读取appName取得浏览器名称,第3、4行分别取得版本号和发行代号。提示通过获得浏览器的信息,才能对当前页面使用具有针对性的JavaScript程序代码。1.4 注意事项

JavaScript程序的书写有些许需要注意的地方,如大小写敏感、单行和多行、分号的运用等。初学者在编写程序时通常会触犯这些规则,应该尽力避免。用户自定义的标识符不能与语言保留的关键字同名,通过使用一些专业的编辑器可以帮助消除语法错误。1.4.1 大小写敏感

JavaScript代码是大小写敏感的,Name和name是不同的标识符,编码时应当予以注意。同一个词如果各个字母间大小写不同,系统将当做不同的标识符来处理,相互之间没有任何联系。现举例说明,代码如下所示。01 Name = "sunsir"; // 大写字母开头 02 name = "foxsir"; // 小写字母开头

此时Name的值仍然是“sunsir”,对name进行操作并不影响到变量Name,它们是不同的变量,因为在JavaScript中所有的代码都区分大小写。1.4.2 注意空格与换行

代码中多余的空格会被忽略,同一个标识符的所有字母必须连续。一行代码可以分成多行书写,如以下代码的书写都正确。单行书写如下:if(1==1 && 6>3 ){alert("return true"); }else{alert( "return false" ); } // 代码写于一行中,用分号作为语句结束标志

分成多行、规范的书写如下:01 if( 1==1 && 6>3 ) // 如果1等于1,且6大于3,则 02 { 03 alert("return true" ); // 输出“true” 04 } 05 else // 否则 06 { 07 alert( "return false" ); // 输出“false” 08 }

也可以在代码中的标识符间任意添加空格,多余的空格会被忽略,如以下代码效果与上述代码完全一样。01 if ( 1 // 一个语句分多行书写 02 ==1 // 将一行代码分成多行 03 && 6> 3 // 将一行代码分成多行 04 ) // 将一行代码分成多行 05 { alert( // 将一行代码分成多行 06 "return true"); }else // 将一行代码分成多行 07 { // 将一行代码分成多行 08 alert( "return false" ); // 将一行代码分成多行 09 } // 将一行代码分成多行

虽然代码可以分成任意多行去写,但是对于字符串却不一样。要将一个字符串分成多行,须将每一行作为一个单独的字符串,再使用“+”运行符将位于不同行的字符串连接起来。代码如下所示。01 var Message = "JavaScript编程,简单,有趣!"; // 单行中的字符串 02 var message = "JavaScript编程," + // 多行中的字符串 03 "简单,有趣!";提示规范的书写风格,是编写成熟代码的基本要求,希望读者引起注意。1.4.3 分号可有可无

JavaScript程序可以使用分号作为一个语句的结束标志,分号之后是新语句的开始。这样可以将多个语句放在一行中,该特性在一些场合中非常有用,比如将JavaScript程序写在一个字符串中以构造函数对象。当一行只有一个程序语句时,结尾可以不使用分号。反之,当不使用分号时,一行被认为是一个程序语句,代码如下所示。01 // 脚本结束1.5 小结

本章向读者介绍了JavaScript语言产生的背景、发展的过程及如何使用。现行的JavaScript是以ECMAScript为语言标准的,常见的浏览器基本上都实现了ECMA-262语言规范。对于不同浏览器间的一些微小的差别读者仍需要注意,可以在程序中判断当前浏览器并编写与之适应的代码。JavaScript程序以文本的形式嵌入或链接到HTML文档中,其代码标识符大小写敏感。一个程序语句可以分成多行书写,可以使用分号作为一个语句的结束。1.6 习题一、常见面试题

1.简述Java与JavaScript的区别。【解析】本题考查的是对这两种语言的了解。其实JavaScript和Java没有任何关系(除了名字)JavaScript的命名是为了沾Java的光,还仿照了一些Java的结构语法。JavaScript是浏览器的脚本语言,Java是编写应用程序的高级语言。

2.什么是脚本语言。【解析】本题主要考查的是对脚本语言和高级语言的认识。脚本语言是一种应用程序扩展语言,用于系统的扩展,使其按用户的意愿去运行。所有的基础功能由系统提供,脚本语言在更高层次描述如何调用系统的接口。和其他编程语言不同,脚本语言通常不需要经历编译和链接这些阶段,大都直接解释执行。二、简答题

1.简述JavaScript的发展史,以及它的未来。

2.简述JavaScript语言的一些特点。三、综合练习

1.编写程序,在浏览器中显示用户的名字。【提示】对Hello World程序稍加修改即可实现,差别只是输出不同的字符串。参考代码如下:01 // 脚本结束【运行结果】打开网页运行程序,结果如图1-7所示。图1-7 输出字符串

2.检测当前运行程序所用的浏览器,输出浏览器的程序名。【提示】模仿范例1-2,读取navigator对象的appName属性的值,所得数据即为浏览器的程序名,参考代码如下:01 // 程序结果【运行结果】打开网页运行程序,结果如图1-8所示。图1-8 输出浏览器名称提示本书假定读者具有基本的HTML语言知识,HTML部分代码除非必要否则将不多做解释。四、编程题

1.写一个简单的“Hello World”程序并运行。【提示】可以参照1.3.3节进行。

2.计算两个数相加,并将结果输出。【提示】可以定义三个变量,两个作为加数,一个作为总数。第2章 数据类型

本章将讲解JavaScript程序设计中的基本要素,即数据类型。任何一种程序设计语言都离不开对数据和业务逻辑的处理,对数据进行操作前必须确定数据的类型。数据的类型规定了可以对该数据进行的操作和数据存储的方式。

JavaScript作为一门脚本语言,其使用过程完全表现出自动化特点。和其他脚本语言一样,使用时不需要显式指定数据的类型,仅在某些特殊场合才需要知道某一数据的类型。JavaScript数据类型包括基本类型和复合类型,本章重点讲解各种常用的数据类型。

● 理解和掌握基本数据类型的特点,以便在今后设计程序时正确运用。

● 理解和掌握复合数据类型的特点,并通过实际的练习加以巩固。

● 理解并掌握常用的内置对象的特性和使用方法。

以上几点是对读者在学习本章内容时所提出的基本要求,也是本章希望能够达到的目的。读者在学习本章内容时可以将其作为学习的参照。2.1 基本数据类型

每一种程序设计语言都规定了一套数据类型,其中最基本不可再细分的类型称为基本数据类型。JavaScript基本数据类型包括字符串型、布尔型和数值型等,这几种是JavaScript中使用最普遍的数据类型,下面分别讲解各种类型的特点和使用方法。2.1.1 字符串型数据

在JavaScript中,字符串型数据是用引号引起的文本字符串。例如,“好久不见,你还好吗?”或‘Bob是个聪明的孩子’。每一个字符串数据都是String对象的实例,其主要用于组织处理由多个字符构成的数据串。定义一个字符串时不需要指定类型,只需要按以下语法定义即可。

定义字符串的第一种形式如下:var hello = "你好啊";

定义字符串的第二种形式如下:var hello = ’你好啊’;

其中,var是JavaScript中用于定义变量的关键字。此处用其定义一个名为hello的字符串变量,关于变量的内容将在本书第3章详细讲解。程序执行时系统自动为hello采用字符串的处理方式,此处字符串变量hello的数据内容为“你好啊”。第一种定义方式和第二种定义方式的效果完全一样,系统不会对此加以区分,下面编写一个程序演示字符串的用法。【范例2-1】编写程序,练习使用引号定义字符串变量。向Peter输出一句问候语,如示例代码2-1所示。示例代码2-101 【运行结果】打开网页文件运行程序,所得结果如图2-1所示。【代码解析】本例代码中第3图2-1 连接后的字符串行和第4行分别使用双引号和单引号定义字符串变量,主要演示字符串变量的定义方法。第5行使用window对象的alert方法将连接后的字符串数据输出显示。2.1.2 深入理解字符串

在JavaScript中不区分“字符”和“字符串”,字符也被当作字符串处理。例如,在字符串“this is a string”中“h”是按从左到右顺序的第一个字符,可以使用字符串对象的charAt方法取出一个字符串中指定的一个字符,有关“对象”的内容,将在本书的后续章节讲到。提示字符串中的字符索引从0开始,所以上述字符串中的“h”是该串的第一个字符。字符串中的字符按顺序存储。

前面讲述的是有关字符串的定义方式。字符串中的字符数据仅包含常见的普通字符,然而字符串中可以包含用于特殊目的字符。比如用于换行控制的字符“\n”,此类字符在JavaScript中称为转义字符。转义字符的定义以“\”开始,JavaScript中的转义字符如表2-1所示。表2-1 JavaScript中部分常用的转义字符转义字符作用\n回车换行\t相当于Tab键\r换行,相当于一个回车\f“♀”字符\'单引号\"双引号\\替换为“\”

表2-1列出了一些常用的转义字符,更多的转义字符请查阅相关资料。一般来说,转义字符主要用于在字符串中输入一些控制字符和系统已经保留了的字符,比如双引号、单引号和左斜杠等。下面通过编写程序演示转义字符的使用方法。【范例2-2】编写程序,使用转义字符在字符串中输出回车换行、制表符和引号等。演示转义字符的使用方法如示例代码2-2所示。示例代码2-201 // 脚本程序结束【运行结果】双击网页文件运行程序,其结果如图2-2所示。【代码解析】第2行定义字符图2-2 输出引号串变量str1,并为其赋值,串末尾使用了“回车换行”转义字符“\n”,起到换行的作用。第3行定义字符串变量str2,串末尾使用“回车”转义字符“\r”,相当于输入字符串时按了一次回车键。第4行所定义的字符变量str3的值中使用了“制表符”转义字符“\t”,作用是在输出该字符串时将其当作一个“Tab”键处理。

第5行的字符串变量str4的值中使用了引号转义字符“\"”。因为引号已经被JavaScript保留为关键字符,所以用户在字符串中使用引号时采用转义字符“\"”即可。第6行将前面定义的4个字符串连接为一个字符串str,并用于以后输出显示。提示一部分转义字符在输出为HTML文本流时并不发生作用,比如制表符、回车换行等。读者不妨自行测试,将上述例子中的alert(str)换成document.write(str)后所得结果与图2-2相比较。2.1.3 使用数值型数据

JavaScript中用于表示数字的类型称为数值型,不像其他编程语言那样区分整型、浮点型。数值型用双精度浮点值来表示数字数据,5353可以表示(-2, +2)区间中的任何值。数字的值可以用普通的记法,也可以使用科学记数法。

JavaScript的数字可以写成十进制、十六进制和八进制,具体写法如下。

● 十进制,可以用普通记法和科学记数法。10; // 数字 10.1; // 数字 0.1; // 数字 3e7; // 科学记数 0.3E7; // 科学记数

● 十六进制以“0X”或“0x”开头,后面跟0~F的十六进制数字,没有小数和指数部分。0xAF3E; // 十六进制 0X30FB; // 十六进制

● 八进制以0开头,后跟0~7的八进制数字,同样没有小数和指数部分。037; // 八进制 012346; // 八进制

以上是常用的数字表示法,下面通过编写程序来加深对数值型数据的理解。【范例2-3】编写程序,练习八进制数、十六进制数、十进制数的表示方法。演示JavaScript常用的数值型数据的使用方法,如示例代码2-3所示。由于这段代码都很重要,因此不做加粗处理,读者需着重学习。示例代码2-301 // 脚本程序开始【运行结果】双击网页文件运行程序,其结果如图2-3所示。图2-3 各种进制数混合运算【代码解析】本示例第4~6行定义三个变量,并分别赋十六进制表示的初值。第8~10行将三个变量输出为十进制表示的数。第13~15行定义三个变量,分别赋八进制表示的初值。第17~19行将三个变量输出为十进制表示的数。第21~26行定义数个变量,并对它们赋予用不同表示法表示的十进制数值。第27~31行将变量t1~t6逐一输出为普通的十进制数字。提示用科学记数法、十六进制记数法和八进制记数法表示的数字,在输出时全部自动转换为普通的十进制形式。2.1.4 使用布尔型数据

布尔型是只有“真”和“假”两个值的数据类型。作为逻辑表达式的结果,真值用“true”表示,假值用“false”表示。事实上,非0值即为“真”,0值即为“假”。布尔型数据通常用来表示某个条件是否成立,定义的一个布尔型变量的形式如下:var b = true // 布尔型变量或者如下:var b = false; // 布尔型变量提示在JavaScript中定义任何变量都不需要显式地为其指定类型,系统会根据变量的值类型来确定变量的数据类型。上述变量b的值为true或false时,系统会确定该变量的数据类型为布尔型。

下面编写程序演示布尔数据类型的使用方法。【范例2-4】编写程序,练习布尔型数据的使用方法。验证“非零值为真,零值为假”,掌握布尔型数据的特点,如示例代码2-4所示。由于这段代码都很重要,因此不做加粗处理,读者需着重学习。示例代码2-401 // 脚本程序结束【运行结果】打开网页文件运行程序,其结果如图2-4所示。【代码解析】本示例使用了if语句对布尔型变量的值进行判断,关于if语句,将在后面的章节图2-4 非零值为真讲到。此处读者只需知道如果if后圆括号里布尔型变量的值为真,则执行if后“{}”中的语句。

第3行定义一个布尔型变量,并为其赋初值true,在第4行中将其作为if控制语句的测试条件,其值为“真”,于是执行第5~7行“{}”中的内容。第18行和第23行分别将非0数值型变量当做布尔型变量使用,作为if控制语句的测试条件。结果表明,非0值的数值型变量作为布尔型变量使用时,其值为“真”。第27~35行使用了一个0值数值型变量b5作为布尔型变量使用,结果表明其布尔值为“假”。提示JavaScript中除了“true”和“false”表示“真”和“假”外,任意非0值就表示“真”, 0值表示“假”,请读者多做测试。2.2 复合数据类型

前面一节所讲的字符串型、数值型和布尔型数据是JavaScript的简单数据类型。本节将介绍复合数据类型、对象和数组。对象是JavaScript封装了一套操作方法和属性的类实例,是基本数据类型之一。本书后面的章节将安排专门的内容来介绍数组。2.2.1 常用内置对象

在面向对象的设计模式中,将数据和处理数据的方法捆绑在一起形成一个整体,称为对象。换句话说,对象封装了数据和操作数据的方法,要使用其中的数据或方法必须先创建该对象。可以使用new运算符来调用对象的构造函数,从而创建一个对象,方式如下:var obj = new Object(); // 创建新对象

参数说明:

obj变量名,必需。指向创建的Object对象。

要访问已经创建对象的属性或方法,可以使用“.”运算符,形式如下:obj.toString(); // 作为字符串输出

上述代码调用对象obj的toString方法。

JavaScript内建了几种常用的对象,封装了常用的方法和属性,如表2-2所示。表2-2 JavaScript中常用的对象

名称作用Object所有对象的基础对象Array数组对象,封装了数组的操作和属性ActiveXObj活动控件对象ectarguments参数对象,正在调用的函数的参数Boolean布尔对象,提供同布尔类型等价的功能Date日期对象,封装日期相关的操作和属性的对象Error错误对象,保存错误信息Function函数对象,用于创建函数全局对象,所有的全局函数和全局常量归该对象所Global有Math数学对象,提供基本的数学函数和常量数字对象,代表数值数据类型和提供数值常数的对Number象RegExp正则表达式对象,保存正则表达式信息的对象String字符串对象,提供串操作和属性的对象

下面对表2-2中常用的对象进行讲解,包括Date、String、Global、Number和Math,其他对象在后面的章节有专门的内容讲解。2.2.2 常用日期对象

JavaScript将与日期相关的所有特性封装进Date对象,包括日期信息及其操作,主要用来进行与时间相关的操作。Data对象的一个典型应用是获取当前系统时间,使用前首先创建该对象的一个实例,语法如下:date = new Date( ); // 直接创建 date = new Date( val ); // 指定日期创建 date = new Date( y , m, d [, h [, min [, sec [, ms]]]] ); // 指定年月日分秒创建

参数说明:

● val,必选项。表示指定日期与1970年1月1日午夜间全球标准时间的毫秒数。

● y、m和d分别对应年、月和日,必选。h、min、sec和ms分别对应时、分、秒和毫秒,可选。

这三种创建方式中,根据需要选择一种即可。第一种方式创建一个包含创建时间值的Date对象。第二种方式创建一个与1970年1月1日午夜间全球标准时间相差val毫秒的日期。第三种方式创建指定年、月、日、时、分、秒和毫秒的日期。【范例2-5】编写程序,显示程序运行时的本地时间。演示Date对象的使用方法,如示例代码2-5所示。示例代码2-501

试读结束[说明:试读内容隐藏了图片]

下载完整电子书


相关推荐

最新文章


© 2020 txtepub下载