新書推薦:
《
美国小史(揭秘“美国何以成为美国”,理解美国的经典入门读物)
》
售價:NT$
352.0
《
中国古代北方民族史丛书——东胡史
》
售價:NT$
576.0
《
巨人传(插图珍藏本)
》
售價:NT$
3289.0
《
地下(村上春树沙林毒气事件的长篇纪实)
》
售價:NT$
332.0
《
偿还:债务与财富的阴暗面
》
售價:NT$
347.0
《
清华大学藏战国竹简校释(壹):《命训》诸篇
》
售價:NT$
408.0
《
封建社会农民战争问题导论(光启文库)
》
售價:NT$
296.0
《
虚弱的反攻:开禧北伐
》
售價:NT$
429.0
|
編輯推薦: |
◆基础知识-核心技术-典型案例-综合练习-项目案例
◆209个典型实例,1个项目案例,124个练习题,40个面试题
◆一级开发人员全程贴心讲解,轻松上手与提高
◆超值DVD内含23小时多媒体教学视频,以及丰富赠品!
|
內容簡介: |
JavaScript 是Web 开发中应用早、发展成熟、用户多的脚本语言。其语法简洁,代码可读性在
众多脚本语言中**,它在使用时不用考虑数据类型,是真正意义上的动态语言。本书分为4 篇,共21
章。第一篇完整地讲解了JavaScript 的基础知识,主要内容包括JavaScript 概述、数据类型、常量与变量、表达式与运算符、程序语句、函数和数组等。第二篇专门介绍JavaScript 中内置对象的应用,内容包括JavaScript 对象基础、窗口和框架、屏幕和浏览器对象、文档对象、历史对象和地址对象、表单对象和表单元素和脚本化cookie 等。第三篇讲解的是JavaScript 的高级技术,主要讲解了JavaScript 与XML 技术、正则表达式、AJAX 基础、AJAX 高级应用、JavaScript 与插件和JavaScript 的调试与优化等。最后一篇为综合案例篇,用一个完整的例子讲解了如何使用JavaScript 进行大型应用开发。
本书中,每一篇都是不同层次的完整内容,这不仅给初学者安排了循序渐进的学习过程,也便于不同层次的读者选读。本书既适合没有编程基础的JavaScript 语言初学者作为入门教程,也可作为大、中专院校师生和培训班的教材。对于JavaScript 语言开发的爱好者,本书也有较大的参考价值。
本书附带DVD 光盘1 张,内容包括超大容量手把手教学视频、电子教案(PPT)、源代码、职场面试法宝等。
|
關於作者: |
本书作者团队成员为一线开发工程师、资深编程专家或专业培训师,在编程开发方面有着丰富的经验,并已出版过多本相关畅销书,颇受广大读者认可。长期积累的开发实战经验,结合对编程入门爱好者需求与特点的深入调查研究,本书的内容结构十分有利于编程爱好者和相关学员快速提高水平。
|
目錄:
|
第一篇 基础篇
第1章 JavaScript 概述( 教学视频:59 分钟) 1
1.1 初识JavaScript 1
1.2 简单的脚本语言 3
1.3 第一个JavaScript 程序 4
1.4 注意事项 8
1.5 小结 9
1.6 习题 10
第2章 数据类型( 教学视频:61 分钟) 12
2.1 基本数据类型 12
2.2 复合数据类型 17
2.3 其他数据类型 26
2.4 数据类型的转换 29
2.5 小结 31
2.6 习题 31
第3章 变量和常量( 教学视频:47 分钟) 35
31 常量 35
32 变量 36
33 JavaScript 关键字详解 42
34 小结 42
35 习题 43
第4章 表达式与运算符( 教学视频:88 分钟) 46
4.1 什么是表达式 46
4.2 什么是操作数 47
4.3 运算符概述 48
4.4 算术运算符简介 49
4.5 关系运算符简介 55
4.6 字符串运算符简介 63
4.7 赋值运算符简介 63
4.8 逻辑运算符简介 64
4.9 位运算符简介 66
4.10 其他运算符 70
4.11 掌握运算符的优先级 76
4.12 小结 78
4.13 习题 78
第5章 控制语句( 教学视频:69 分钟) 81
5.1 使用选择语句 81
5.2 使用循环语句 88
5.3 使用异常处理语句 93
5.4 小结 97
5.5 习题 98
第6章 函数( 教学视频:68 分钟) 103
6.1 函数的功能 103
6.2 函数的定义 103
6.3 函数返回类型 109
6.4 函数的分类 111
6.5 函数的作用域 112
6.6 小结 114
6.7 习题 114
第7章 数组( 教学视频:65 分钟) 119
7.1 数组简介 119
7.2 如何创建一个数组 120
7.3 数组元素基本操作 121
7.4 数组对象常见操作 123
7.5 小结 135
7.6 习题 135
第二篇 对象篇
第8章 JavaScript面向对象基础( 教学视频:44 分钟) 138
8.1 面向对象概念 138
8.2 对象应用 139
8.3 JavaScript 的对象层次 142
8.4 事件驱动与事件处理 144
8.5 常用事件 152
8.6 小结 156
8.7 习题 156
第9章 窗口和框架( 教学视频:70 分钟) 159
9.1 window 对象 159
9.2 window 对象事件及使用方法 160
9.3 对话框 164
9.4 状态栏 167
9.5 窗口操作 169
9.6 超时与时间间隔 174
9.7 框架操作 178
9.8 小结 180
9.9 习题 180
第10章 屏幕和浏览器对象( 教学视频:60 分钟) 183
10.1 认识屏幕对象 183
10.2 认识浏览器对象 187
10.3 小结 190
10.4 习题 190
第11章 文档对象( 教学视频:84 分钟) 193
11.1 文档对象概述 193
11.2 文档对象的应用 197
11.3 图像对象 208
11.4 链接对象 216
11.5 锚对象 222
11.6 小结 224
11.7 习题 225
第12章 历史对象和地址对象( 教学视频:50 分钟) 229
12.1 历史对象 229
12.2 地址对象 232
12.3 小结 238
12.4 习题 238
第13章 表单对象和表单元素( 教学视频:64 分钟) 241
13.1 表单对象概述 241
13.2 表单对象的应用 245
13.3 表单元素 252
13.4 文本框 254
13.5 按钮 258
13.6 小结 261
13.7 习题 261
第14章 脚本化cookie( 教学视频:59 分钟) 265
14.1 cookie对象简介 265
14.2 如何创建与读取cookie 266
14.3 如何获取cookie 的值 267
14.4 认识cookie 的编码 268
14.5 掌握cookie 的生存期 271
14.6 掌握cookie 的路径和域 272
14.7 了解cookie 的安全性 273
14.8 掌握使用cookie 的注意事项 275
14.9 小结 275
14.10 习题 275
第三篇 高级技术篇
第15章 JavaScript与XML技术( 教学视频:84 分钟) 281
15.1 XML简介 281
15.2 使用DOM 282
15.3 HTML DOM特性 290
15.4 遍历DOM文档 293
15.5 如何测试与DOM标准的一致性 296
15.6 小结 297
15.7 习题 297
第16章 正则表达式( 教学视频:40 分钟) 300
16.1 正则表达式基础 300
16.2 简单模式 301
16.3 复杂模式 303
16.4 常用模式 307
16.5 小结 310
16.6 习题 310
第17章 AJAX基础( 教学视频:68 分钟) 314
17.1 了解传统的Web技术及AJAX的由来 314
17.2 AJAX技术原理简介 315
17.3 AJAX技术的优缺点分析 315
17.4 认识AJAX技术的组成部分 316
17.5 XMLHttpRequest对象简介 317
17.6 局部更新 318
17.7 实现AJAX 320
17.8 小结 323
17.9 习题 323
第18章 AJAX高级应用( 教学视频:64 分钟) 328
第19章 JavaScript与插件( 教学视频:96 分钟) 338
第20章 JavaScript的调试与优化( 教学视频:57 分钟) 365
第四篇 综合案例篇
第21章 捡馅饼游戏( 教学视频:63 分钟) 376
|
內容試閱:
|
第一篇 基础篇
第 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的应用不胜枚举,读者朋友大可上互联网去了解更多的信息。
第二篇 对象篇
第 8章 JavaScript面向对象基础
学习了前面 7章的内容,读者已经打下了编写完整的 JavaScript程序的基础。从本章开始,将学习 JavaScript应用开发层面的知识,主要包括一些常用对象的使用方法。
这里引入了一个新的概念,即面向对象。虽然在前面已经使用过很多对象,但没有对这个概念进行专门的讲解。面向对象设计方法是早在二三十年前,为了解决软件危机而被提出来的。如今很多优秀的设计方法都基于面向对象的设计方法,面向对象设计方法能更好地实现复杂系统的组织和代码复用。
JavaScript是十几年前才被设计出来的语言,它的一些语言特性支持以面向对象的方法进行系统设计,甚至其内置的功能都是以对象的形式提供的。本章将带领读者学习 JavaScript面向对象的特性。
?了解面向对象的基本概念。
?掌握对象的定义和使用方法。
?掌握 JavaScript的对象层次结构。
?理解掌握事件概念和使用方法。
以上几点是对读者在学习本章内容时所提出的基本要求,也是本章希望能够达到的目的。读者在学习本章内容时可以将其作为学习的参照。
8.1 面向对象概念
早期面向结构的设计方法昀经典的一句话是自顶向下,逐步细化,说明了设计的一般过程。以数据为中心,以分层的方法组织系统。与面向过程相联系的是一套相关的设计方法论,其中包含了许许多多的概念和术语。
面向对象设计方法被提出以后,随之而来的也是一整套设计方法。一切基于对象,是面向对象的核心,接着引入了很多早期开发者闻所未闻的新概念。学习面向对象设计方法,首先应该引入新的设计理念。这些基本的设计理念都体现在语言特性中,如封装、聚合、继承和多态等。对于 JavaScript的初级用户,只在需要自定义新类型时能定义自己的类型并将其实例化,使应用的结构因为它而变得更清晰、易于维护即可。
8.1.1 面向对象中的语言
早期的程序员对 Pascal、Basic等语言可能记忆犹新,它们都是典型的面向过程的语言。面向过程的语言将能完成特定任务的程序段独立起来做成函数,整个系统都是函数相互调用来处理数据,系统以数据流为中心。很显然,系统的各模块间是紧耦合关系。随着系统复杂度的增加,系统变得难以维护,昀终实现不了当时硬件对软件规模的要求,于是产生了软件危机。当然了,编程语言也难辞其咎。
后来因为面向对象的流行,Pascal被人们改造成支持面向对象的 Object Pascal。Basic语言也被改进了,增加了一些面向对象的特性。真正很好地支持面向对象的语言有很早以前就设计出来的 Smalltalk和 C ,以及后来的 Java和 C#,除 C 外的三种语言都是纯面向对象的语
第 8章 JavaScript面向对象基础
言。其他一些流行的脚本语言也支持一些面向对象的特性,但那不是主要目的,如 Python、PHP、 JavaScript等。
面向对象的语言,要求至少能提供以下的功能。
?封装:此特性可隐藏对象内部的实现细节,对外提供一致的访问接口。
?聚合:将多个对象组合起来,实现更复杂的功能。
?继承:简单的代码复用机制,使子类拥有父类的特性。
?多态:以一致的方式使用不同的实现,实现接口不变性。
以上 4点是面向对象语言一般特性,读者可能觉得抽象难懂。不懂也可以先将其放下继续学习下面的内容,JavaScript的用户不需要深入掌握。
8.1.2 对象的构成方式
现实世界中的事物的特性都包含状态和行为两种成分,通过这两种成分即可描述一个事物的客观特征。例如这样来描述一只鱼:红色、重 1kg、长 10cm且会游动。把上例中的鱼抽象出一个类,其有一些属性和行为方法,属于该类的任何一个对象都是这样拥有属性和行为方法。将前述模型抽象到编程语言中以后,对象也就由属性(数据)和方法(处理数据的方法)组成。
属性描述了对象的状态,方法是对象具有可实施的动作。前面所举的例子中,色、重、长都是鱼的属性,游动是鱼的行为(即方法)。对象就是以这样的方法来将数据和处理数据的方法包装在一起的。
8.2 对象应用
严格地讲,JavaScript不是一种面向对象的语言,因为它没有提供面向对象语言所具有的一些明显特征,如继承和多态。因此, JavaScript设计者把它称为基于对象,而不是面向对象的语言。在 JavaScript中仅将相关的特性以对象的形式提供,开发者一般也只需要掌握内置对象的使用方法和构造简单的对象即可。本节将介绍如何使用对象。
8.2.1 详解对象声明和实例化
每一个对象都属于某一个类,类是所有属于该类的对象所具有的属性和方法的抽象描述。例如一条金鱼就是属于鱼类,所以得到一只具体的金鱼前首先明确鱼类。
JavaScript中没有类的概念,创建一个对象只要定义一个该对象的构造函数并通过它创建对象即可。构造函数的定义方法在第 6章中已经讲过,使用函数对象的 this指针可以为函数对象动态添加属性。这里的对象的属性和方法也是通过 this指针动态添加。
例如,欲创建一个 Card(名片)对象,每个对象又有这些属性: name(名字)、address(地址)、phone(电话);则在 JavaScript中可使用自定义对象,下面分步讲解。
(1)定义一个函数来构造新的对象 Card,这个函数称为对象的构造函数。
01 function Card _name, _address, _phone 定义构造函数 02 {03 this.name=_name; 初始化名字属性 04 this.address=_address; 初始化地址属性 05 this.phone=_phone; 初始化电话属性 06 }
(2)在 Card对象中定义一个 printCard方法,用于输出卡片上的信息。
01 function printCard 打印信息 02 {03 line1="Name:" this.name "
\n"; 读取 name 04 line2="Address:" this.address "
\n"; 读取 address 05 line3="Phone:" this.phone "
\n" 读取 phone06 document.writelnline1,line2,line3; 07 }
(3)修改 Card对象,在 Card对象中添加 printCard函数的引用。
01 function Cardname,address,phone 构造函数 02 {03 this.name=name; 初始化 name、address、phone04 this.address=address;05 this.phone=phone;06 this.printCard=printCard; 创建 printCard函数的定义 07 }
(4)即实例化一个 Card对象并使用。
01 Tom=new Card "Tom", "BeiJingRoad 123", "0851-12355" ; 创建名片 02 Tom.printCard; 输出名片信息
上面分步讲解是为了更好地说明一个对象的产生过程,但真正的应用开发则是一气呵成。其中有太多的地方需要运用编程技巧,并灵活设计。将上述几步合成,如下例所示。
【范例8-1】创建一个卡片对象,卡片上标有名字、地址和电话等信息。名
片对象提供一个方法以输出这些信息,如示例代码 8-1所示。
示例代码 8-1
01
脚本程序结束
【运行结果】打开网页文件运行程序,其结果如图 8-1所示。
【代码解析】该代码段是声明和实例化一个对象的过程。代码第 2~14行,定义了一个对象类构造函数 Card(名片)。名片包含三种信息,即三个属性,以及一个方法。第 15、16行创建一个名片对象并输出其中的信息。
|
|