登入帳戶  | 訂單查詢  | 購物車/收銀台( 0 ) | 在線留言板  | 付款方式  | 聯絡我們  | 運費計算  | 幫助中心 |  加入書簽
會員登入 新註冊 | 新用戶登記
HOME新書上架暢銷書架好書推介特價區會員書架精選月讀2023年度TOP分類閱讀雜誌 香港/國際用戶
最新/最熱/最齊全的簡體書網 品種:超過100萬種書,正品正价,放心網購,悭钱省心 送貨:速遞 / EMS,時效:出貨後2-3日

2024年03月出版新書

2024年02月出版新書

2024年01月出版新書

2023年12月出版新書

2023年11月出版新書

2023年10月出版新書

2023年09月出版新書

2023年08月出版新書

2023年07月出版新書

2023年06月出版新書

2023年05月出版新書

2023年04月出版新書

2023年03月出版新書

2023年02月出版新書

『簡體書』JavaScript+jQuery程序开发实用教程

書城自編碼: 2888053
分類: 簡體書→大陸圖書→教材研究生/本科/专科教材
作者: 李雨亭、吕婕、王泽?U
國際書號(ISBN): 9787302419075
出版社: 清华大学出版社
出版日期: 2016-01-01
版次: 1 印次: 1

書度/開本: 16开 釘裝: 平装

售價:NT$ 338

我要買

share:

** 我創建的書架 **
未登入.



新書推薦:
山河不足重,重在遇知己
《 山河不足重,重在遇知己 》

售價:NT$ 252.0
独自走过悲喜
《 独自走过悲喜 》

售價:NT$ 381.0
永不停步:玛格丽特·阿特伍德传
《 永不停步:玛格丽特·阿特伍德传 》

售價:NT$ 442.0
假努力:方向不对,一切白费
《 假努力:方向不对,一切白费 》

售價:NT$ 335.0
北京三万里
《 北京三万里 》

售價:NT$ 437.0
争吵的恋人:我们为什么相爱,又为什么争吵
《 争吵的恋人:我们为什么相爱,又为什么争吵 》

售價:NT$ 330.0
秘史:英国情报机构的崛起
《 秘史:英国情报机构的崛起 》

售價:NT$ 381.0
李鸿章及其时代:中西方世界的历史撞击
《 李鸿章及其时代:中西方世界的历史撞击 》

售價:NT$ 330.0

建議一齊購買:

+

NT$ 261
《 西方经济学基础教程(第三版) 》
+

NT$ 316
《 债法总论 》
+

NT$ 605
《 妇产科学(第八版/本科临床/十二五规划教材) 》
+

NT$ 279
《 综合英语教程4 》
+

NT$ 808
《 《营销管理》(第14版)(最新第14版,原汁原味全彩印刷,无删减无修改!) 》
+

NT$ 751
《 人力资源管理(第12版)(工商管理经典译丛 全球最经典、中国最畅销的人力资源管理教材,德斯勒经典著作的最新版本) 》
內容簡介:
本书循序渐进地介绍了JavaScript开发技术。深入分析了JavaScript的核心知识,并在此基础上详细讲解了jQuery框架的使用。此外,在每个重要知识点讲解的后面,通过丰富典型的案例,使读者进一步巩固所学的知识,提高实际开发能力。

本书内容全面,实例丰富,易于理解,每章的内容都简洁紧凑,从最佳实践的角度入手,为读者更好地使用JavaScript及jQuery框架开发动态网页提供了很好的指导。

本书适合高等院校计算机科学、软件工程、数字媒体技术、通信及相关专业本、专科作为动态网页程序设计相关课程教材使用,也是打算学习和正从事JavaScript+jQuery动态网页设计的开发人员的教材或参考书。
目錄
目 录
第1章 JavaScript概述1
1.1 JavaScript简介2
1.1.1 JavaScript语言简史2
1.1.2 JavaScript的特点2
1.1.3 JavaScript在页面中的应用3
1.2 HTML页面中嵌入JavaScript的
方法4
1.2.1 页面中定义JavaScript代码5
1.2.2 链接外部JavaScript文件6
1.2.3 事件调用JavaScript程序7
1.3 JavaScript代码的编辑工具8
1.3.1 纯文本编辑器9
1.3.2 Dreamweaver9
课后小结11
习题11
第2章 JavaScript的数据类型和
运算符13
2.1 JavaScript的语法规则14
2.1.1 区分大小写14
2.1.2 代码的格式14
2.1.3 代码的注释15
2.1.4 常量15
2.1.5 空白符和换行符16
2.1.6 标识符17
2.1.7 保留字17
2.2 数据类型18
2.2.1 数值型18
2.2.2 字符串类型19
2.2.3 布尔型20
2.2.4 空值型20
2.2.5 未定义值21
2.2.6 类型转换21
2.3 变量24
2.3.1 变量的命名24
2.3.2 变量的声明24
2.3.3 变量的赋值26
2.4 运算符27
2.4.1 算术运算符28
2.4.2 赋值运算符31
2.4.3 关系运算符32
2.4.4 逻辑运算符34
2.4.5 字符串运算符36
2.4.6 其他运算符37
2.4.7 运算符的优先级38
课后小结39
习题39
第3章 JavaScript的流程控制41
3.1 JavaScript中的选择结构42
3.1.1 if语句42
3.1.2 if...else语句42
3.1.3 嵌套if...else语句44
3.1.4 switch语句46
3.2 JavaScript中的循环结构48
3.2.1 while语句48
3.2.2 do...while语句49
3.2.3 for语句50
3.2.4 for…in语句51
3.2.5 with语句52
3.2.6 break语句54
3.2.7 continue语句55
课后小结56
习题56
第4章 JavaScript中的函数59
4.1 函数的定义60
4.2 函数的调用61
4.3 函数的参数和返回值62
4.3.1 函数的参数62
4.3.2 函数的返回值66
4.4 函数的嵌套和递归67
4.5 变量的作用域70
4.6 JavaScript中的系统函数71
4.6.1 encodeURI函数71
4.6.2 decodeURI函数72
4.6.3 parseInt函数73
4.6.4 isNaN函数74
4.6.5 eval函数75
课后小结76
习题76
第5章 JavaScript中的对象77
5.1 对象的基本概念78
5.1.1 对象的属性和方法78
5.1.2 对象的创建和删除79
5.2 内置对象81
5.2.1 String对象81
5.2.2 Number对象85
5.2.3 Math对象88
5.2.4 Date对象90
5.2.5 Array对象93
5.3 浏览器对象98
5.3.1 window对象99
5.3.2 document对象102
5.3.3 frame对象104
5.3.4 history对象106
5.3.5 location对象108
5.3.6 navigator对象109
课后小结111
习题111
第6章 JavaScript中的事件与事件
处理113
6.1 事件及事件处理程序114
6.1.1 事件和事件处理程序114
6.1.2 指定事件处理程序114
6.2 JavaScript的常用事件116
6.2.1 键盘事件116
6.2.2 鼠标事件118
6.2.3 Load事件和Unload事件121
6.2.4 Focus事件和Blur事件123
6.2.5 Submit事件和Reset事件125
6.2.6 Change事件和Select事件127
6.2.7 Error事件129
课后小结129
习题130
第7章 JavaScript中的DOM编程131
7.1 XML基础132
7.1.1 XML的文档结构132
7.1.2 XML解析器133
7.2 DOM编程基础134
7.2.1 DOM文档对象模型134
7.2.2 DOM中的节点135
7.3 使用DOM编程137
7.3.1 访问节点137
7.3.2 创建新节点138
7.3.3 添加节点139
7.3.4 插入节点140
7.3.5 删除节点142
课后小结145
习题145
第8章 CSS样式表147
8.1 CSS简介148
8.1.1 CSS的发展148
8.1.2 CSS的特点148
8.2 CSS的定义方式149
8.3 CSS的选择器150
8.3.1 元素选择器150
8.3.2 类选择器152
8.3.3 ID选择器153
8.3.4 属性选择器155
8.3.5 后代选择器156
8.3.6 子元素选择器158
8.3.7 相邻兄弟选择器159
8.4 CSS中的属性161
8.4.1 字体属性设置164
8.4.2 文本属性设置168
8.4.3 背景属性设置171
8.4.4 边框属性设置175
8.4.5 边距和填充距属性设置178
课后小结179
习题179
第9章 JavaScript网页特效181
9.1 文字特效182
9.1.1 跑马灯效果182
9.1.2 打字效果183
9.1.3 文字大小变化效果185
9.1.4 升降文字效果187
9.2 图片特效188
9.2.1 改变页面中图片的位置188
9.2.2 鼠标拖动改变图片大小190
9.2.3 不断闪烁的图片191
9.3 时间和日期特效192
9.3.1 标题栏显示分时问候语192
9.3.2 显示当前系统时间193
9.3.3 星期查询功能195
9.4 窗体特效197
9.4.1 无边框窗口自动关闭特效197
9.4.2 方向键控制窗口的特效199
9.4.3 改变窗体颜色200
9.5 鼠标特效201
9.5.1 屏蔽鼠标右键201
9.5.2 获取鼠标位置坐标202
9.5.3 根据方向改变鼠标外观204
9.6 菜单特效205
9.6.1 左键弹出菜单205
9.6.2 下拉菜单207
9.6.3 滚动菜单208
9.7 警告和提示特效210
9.7.1 进站提示信息210
9.7.2 单击超链接显示提示框211
9.7.3 显示停留时间211
9.8 密码特效213
9.8.1 弹出式密码保护213
9.8.2 检查密码的格式合法性215
课后小结218
第10章 初识jQuery219
10.1 jQuery概述220
10.1.1 jQuery简介220
10.1.2 jQuery的特点220
10.2 jQuery代码编写221
10.2.1 配置jQuery开发环境221
10.2.2 jQuery代码编写221
10.3 jQuery对象与DOM对象222
10.3.1 jQuery对象简介222
10.3.2 jQuery对象与DOM对象
的相互转换223
课后小结223
习题224
第11章 jQuery选择器225
11.1 jQuery选择器简介226
11.2 jQuery选择器的分类226
11.2.1 基本选择器226
11.2.2 层次选择器228
11.2.3 过滤选择器229
11.2.4 表单选择器235
11.3 jQuery中元素属性的操作237
11.3.1 设置元素属性237
11.3.2 删除元素属性238
11.4 jQuery中样式类的操作239
11.4.1 添加样式类239
11.4.2 移除样式类241
11.4.3 交替样式类242
11.5 jQuery中样式属性的操作243
11.5.1 读取样式属性243
11.5.2 设置样式属性244
11.5.3 设置元素偏移245
11.6 jQuery中元素内容的操作247
11.6.1 操作HTML代码247
11.6.2 操作文本248
11.6.3 操作表单元素的值249
11.7 筛选与查找元素集中的元素250
课后小结255
习题255
第12章 jQuery中DOM的操作257
12.1 DOM树结构258
12.2 创建元素259
12.3 插入元素259
12.4 复制元素261
12.5 替换元素262
12.6 包裹元素263
12.7 删除元素264
课后小结266
习题266
第13章 jQuery的事件处理267
13.1 jQuery中的事件处理机制268
13.2 jQuery中的页面载入事件270
13.3 jQuery中的事件绑定272
13.3.1 bind方法绑定事件272
13.3.2 one方法绑定事件273
13.3.3 live方法绑定事件274
13.4 jQuery中的事件移除276
13.5 jQuery中的事件冒泡278
13.6 jQuery中的模拟事件触发操作279
13.7 jQuery中的合成事件282
13.7.1 hover方法282
13.7.2 toggle方法283
课后小结284
习题284
第14章 jQuery的动画效果285
14.1 显示与隐藏效果286
14.1.1 隐藏元素的hide方法286
14.1.2 显示元素的show方法287
14.1.3 交替显示隐藏元素288
14.2 滑动效果288
14.2.1 向上收缩效果289
14.2.2 向下展开效果290
14.2.3 交替伸缩效果290
14.3 淡入淡出效果291
14.3.1 淡入效果291
14.3.2 淡出效果293
14.3.3 交替淡入淡出效果294
14.3.4 不透明效果295
14.4 自定义动画效果295
14.4.1 自定义动画296
14.4.2 动画队列297
14.4.3 动画停止和延时299
课后小结301
习题301
第15章 jQuery与Ajax303
15.1 Ajax简介304
15.2 jQuery中的Ajax方法306
15.2.1 load方法306
15.2.2 $.get方法和$.post方法307
15.2.3 $.getScript方法和
$.getJSON方法309
15.2.4 $.ajax方法310
15.3 jQuery中的Ajax事件312
课后小结315
习题315
第16章 jQuery常用插件317
16.1 jQuery中的表单插件318
16.2 jQuery中的验证插件320
16.3 jQuery中的右键菜单插件325
16.4 jQuery中的图片弹窗插件329
课后小结332
习题333
內容試閱
第2章 JavaScript的数据类型和运算符
学习目标:
JavaScript脚本语言同其他程序设计语言一样,有其自身的基本数据类型、表达式和算术运算符。JavaScript有一套其自身的语法规则和基本框架结构,这是掌握JavaScript语言和开发JavaScript程序的基础。
内容摘要:
* 熟悉JavaScript的语法规则
* 掌握JavaScript的数据类型
* 熟练掌握JavaScript的运算符
2.1 JavaScript的语法规则
所有的编程语言都有自己的一套语法规则,用来详细说明如何使用该语言来编写程序。JavaScript语言也不例外,为了确保JavaScript代码正确运行,必须遵守其语法规则。
说明:在编写JavaScript代码时,由于JavaScript不是一种可独立运行的语言,所以必须既关注JavaScript的语法规则,又要熟悉HTML的语法规则。
2.1.1 区分大小写
JavaScript是严格区分大小写的。例如,在程序代码中定义一个标识符computer首字母小写的同时还可以定义一个标识符Computer首字母大写,二者是完全不同的两个符号。一般来说,在JavaScript中使用的大多数标识符都采用小写形式。如保留字全部都为小写,但也有一些名称采用大小写组合方式,如onClick、onLoad、Date.getFullYear等。
2.1.2 代码的格式
JavaScript中的代码有其固定的格式。在JavaScript程序中,每条功能执行语句的最后必须以分号结束。一个单独的分号也可以表示一条语句,这种语句叫作空语句。为了使程序代码整齐美观,而采取的对齐或者缩进文本的格式不是必需的。代码可以按编写者的意愿任意编排,只要每个词之间用空格、制表符、换行符或者大括号、小括号等分隔符隔开就可以了。
在JavaScript程序中,一行可以写一条语句,也可以写多条语句。一行中写多条语句时,语句之间使用分号分隔。当在一行中只写一条语句时,可以省略语句结尾的分号,此时以回车换行符作为语句的结束。例如,以下写法都是正确的。
int c=10; 此行结尾的分号可以省略
int x=5;

c=10; x=5; 此行C=10;之后的分号不能省略

c=10 语句结尾省略了分号
x=5;
说明:为了便于阅读,即使一行只有一条语句,最好也在语句末尾加上一个分号。
如果一条语句被分成了一行以上,JavaScript会自动在该行结尾插入分号,使换行符之前的一行形成一条语句。例如,如果按以下格式输入以下语句。
return
false;
本来想表达的意图是以下语句:
return false;
但JavaScript在解释时会在return之后自动插入一个分号,而形成以下的两条语句:
return;
false;
从而产生代码错误。因此,要注意同一条语句要写在一行中,其间不要插入换行符。
但作为HTML标签属性值的JavaScript脚本程序代码的最后一条语句结尾处的分号可以省略,例如:
input type=button value=text onclick=”alert new Date”
其中alertnew Date后面就省略了分号。
2.1.3 代码的注释
为程序添加注释可以起到解释程序的作用,提高程序的可读性。此外,还可以使用注释来暂时屏蔽某些程序语句,让浏览器暂时不要理会这些语句。等到需要的时候,只要取消注释标记,这些程序语句就又可以发挥作用了。
实际上,注释是脚本的重要组成部分,注释有利于提高脚本的可读性。为程序加入适当的注释,其他人就可以借助注释来理解和维护脚本,从而有利于团队合作开发,提高开发效率。
JavaScript可以使用两种方式书写注释:单行注释和多行注释。
1 单行注释。
单行注释以两个斜杠开头,然后在该行中书写注释文字,注释内容不超过一行。例如:
这是对一个函数的定义
2 多行注释。
多行注释又叫注释块,它表示一段文字都是注释的内容。多行注释以符号“*”开头,并以“*”结尾,中间部分为注释的内容,注释内容可以跨越多行,但其中不能有嵌套的注释。例如:
* 这是一个多行注释,这一行是注释的开始
函数定义的开始
……
函数定义的结束*
2.1.4 常量
JavaScript的常量又称为字面常量,是程序中不能改变的数据,与数据类型相对应,有以下几种常量。
1. 整型常量
整型常量可以使用十六进制、八进制和十进制表示。十六进制以0x或者0X开头。如0x8a。八进制必须以0开头,如0167。十进制的第一位不能是0数字0除外,如235。
2. 实型常量
实型常量是由整数部分加小数部分表示,如11.376和689.78,实型常量也可以使用科学记数法来表示,如8E7、7e6。
3. 布尔常量
布尔常量不是真就是假。其值只有两种:true和false。
4. 字符串常量
JavaScript中没有单独的字符常量,而只有表示由若干字符所组成的字符串常量。字符串常量使用单引号''或双引号" "引起来的若干字符,如"abc","a book"等。一个字符串中不包含任何字符也是可以的,其形式为" ",表示一个空字符串。
5.??null常量
JavaScript中的null常量表示一个变量所指向的对象为空值。
6.??undefined常量
undefined常量用于表示变量还没有被赋值的状态。null表示赋给变量的值为“空”,“空”是一个有特殊意义的值。而undefined则是表示还没有对变量赋值,变量的值还处于未知状态。
2.1.5 空白符和换行符
JavaScript会忽略程序中记号之间的空格、制表符和换行符,除非它们是字符串常量的组成部分。这里的记号就是指一个关键字、变量名、数字、函数名或者其他各种实体。具体来说,可以分为以下3种情况。
1 如果标识符、运算符之间有多于一个的空白字符,对于解释器来讲,多个空白字符相当于一个空白字符的分隔作用。例如,下面的两行代码是等价的:
var name="王五";
var name = "王五";
2 如果在一个记号中插入了空格或制表符,JavaScript就会将它分成两个记号。例如,area是一个变量名,而ar ea则是两个独立的变量ar和ea。
3 如果字符串常量本身包含空格,如“cell phone”,JavaScript解释器在解释代码的过程中会保留这些空格。
说明:由于JavaScript忽略出现在其他地方的空白,因此,可以自由地缩进代码行,可以采用整齐、一致的方式自由安排程序的格式,以便于阅读和理解程序。
2.1.6 标识符
标识符是指JavaScript中定义的符号,如变量名、函数名、数组名等。在JavaScript中,合法的标识符的命名规则和Java语言以及其他许多编程语言的命名规则相同,即标识符可以由大小字母、数字、下划线_和美元符号$组成,但标识符不能以数字开头,不能是JavaScript中的保留字。
例如,下面的几个标识符是合法的:
username
user_name
_userName
$username
下面的几个标识符是非法的:
int int是JavaScript中的保留字
78.278.2是由数字开头,并且标识符中不能含有点号.
Hello world标识符中不能含有空格
2.1.7 保留字
每种程序语言都有自己的保留字,不能将它们用作程序中的标识符。JavaScript同其他程序语言一样,也拥有自己的保留字。JavaScript保留字是指在JavaScript语言中有特定含义,成为JavaScript语法的一部分的那些字符。它们只能在JavaScript语言规定的场合中使用,而不能用作变量名、函数名等标识符。表2-1列出了JavaScript的保留字。
表2-1 保留的JavaScript的关键字
abstract
do
if
package
throws
boolean
double
implements
protected
transient
break
else
import
public
true
byte
extends
in
return
try
case
false
instanceof
short
var
catch
final
int
static
void
char
finally
interface
super
while
class
float
long
switch
with
const
for
native
synchronized
continue
function
new
this
default
goto
null
throw
说明:在最新的ECMAScript V4标准草稿中还将is、namespace和use作为了保留字。使用时应该也避免使用这几个保留字。
除了不能将保留字用作标识符外,还有很多其他的词也不能被用作标识符。它们是被JavaScript用作属性名、方法名和构造函数名的词。如果用这些名字创建了一个变量或函数,就会重定义已经存在的属性或函数。编写程序时,在给变量或函数命名时不应该和这些全局变量或函数的名字相同。另外,还要避免定义以两个下划线开头的标识符,因为JavaScript常常将这种形式的标识符用于内部。
2.2 数 据 类 型
JavaScript中的数据类型可以分为两类:基本数据类型和引用数据类型。JavaScript的基本数据类型包括数值型、字符串型和布尔型以及两个特殊的数据类型空值和未定义。另外,还支持数组、函数、对象等引用数据类型。由于JavaScript采用弱类型的变量声明形式,因而变量在使用前可以先不作声明,而是在使用或赋值时再确定其数据类型。
2.2.1 数值型
数值型number是最基本的数据类型,可以用于完成数学运算。JavaScript与其他程序设计语言的不同之处在于,它并不区分整型数值和浮点型数值。在JavaScript中,所有数字都是由浮点型表示的。
如果一个数值直接出现在JavaScript程序中时,称为数值直接量。JavaScript支持的数值直接量的形式有以下几种。
1. 整型直接量
一个整型直接量可以是十进制、十六进制和八进制数。例如,下面列出了几个整型直接量:
25 整数25的十进制表示
037整数31的八进制表示
0x1A整数26的十六进制表示
2. 浮点型直接量
浮点型直接量即带小数点的数。它既可以使用常规表示法,也可以使用科学记数法来表示。使用科学记数法表示时,指数部分是在一个整数后跟一个“e”或“E”,它可以是一个有符号的数。下面是一些浮点型直接量:
3.1415常规表示法
-3.1E12常规表示法
.1e12 科学记数法,该数等于0.1×1012
52E-12科学记数法,该数等于52×10-12
说明:一个浮点数组必须包含一个数字、一个小数点或“e”或“E”。
* 特殊数值
JavaScript中还定义了一些表示特殊数值的常量,如表2-2所示。
表2-2 JavaScript中特殊的数值常量
常 量
含 义
Infinity
表示正无穷大的特殊值
NaN
特殊的非数字值
Number.MAX_VALUE
可表示的最大值
Number.MIN_VALUE
可表示的最小负数与零最接近的值
Number.NaN
特殊的非数字值
Number.POSITIVE_INFINITY
表示正无穷大的特殊值
Number.NEGATIVE_INFINITY
表示负无穷大的特殊值
2.2.2 字符串类型
字符串是由字符、数字、标点符号等组成的序列,是JavaScript中用来表示文本的数据类型。
说明:JavaScript和C以及C++、Java不同的是,它没有char这样的字符数据类型,要表示单个字符,必须使用长度为1的字符串。
1. 字符串直接量
字符串直接量是由单引号或双引号括起来的一串字符,其中可以包含0个或多个字符。下面为一些字符串直接量:
"fish"
''李白''
"5467"
"a line"
"That’s very good. "
''"What are you doing?", he asked.''
字符串直接量两边的引号必须相同,即对一个字符串来说,要么两边都是双引号,要么两边都是单引号;否则一边加单引号,一边加双引号会产生错误。此外,由单引号定界的字符串中可以含有双引号,由双引号定界的字符串中也可以含有单引号,如上面的最后一行即是单引号中包含了双引号来定界字符串。
说明:HTML使用双引号来定界字符串,由于要在HTML文档中使用JavaScript,所以最好养成在JavaScript语句内使用单引号的习惯,这可以避免与HTML代码冲突。
2. 转义字符
有些包含在字符串中的字符,由于在JavaScript 语法上已经有了特殊用途,而不能以常规的形式直接加入这些符号。为了解决这个问题,JavaScript专门为这类字符提供了一种特殊的表达方式,称为转义字符。
转义字符以反斜杠\开始,后面跟一些符号。这些由反斜杠开头的字符表示的是控制字符而不是字符原来的含义。表2-3列出了JavaScript支持的转义字符及其代表的实际意义。
表2-3 JavaScript中的转义字符
字 符
含 义
\0
NULL字符\u0000
\b
退格符\u0008
\t
水平制表符\u0009
\n
换行符\u000A
\v
垂直制表符\u000B
\f
换页符\uDDCC
\r
回车符\uDDCD
\"
双引号\u0022
\''
撇号或单引号\u0027
\反斜杠符\ \u005C
\xXX
由两个十六进制数值XX指定的 Latin-1 编码字符,如 \xA9 即是版权符号的十六进制码
\uXXXX
由4位十六进制数的?XXXX指定的Unicode 字符,如 \u00A9 即是版权符号的 Unicode 编码
\XXX
由1~3位八进制数从1~377指定的 Latin-1 编码字符,如 \251 即是版权符号的八进制码ECMAScript V3不支持,不要使用这种转义序列
2.2.3 布尔型
布尔型主要用来代表一种状态,其数据的值只有两个,由布尔型直接量true和false来表示,分别代表真和假。
例如,
a = =1
这行代码测试了变量a的值是否和数值1相等,如果相等,结果就是布尔值true;否则结果就是false。
2.2.4 空值型
JavaScript中还有一个特殊的空值型数据,用关键字null来表示。它是JavaScript中的一种对象类型,常常被看作对象类型的一个特殊值,即代表“无对象”的值。如果一个变量的值为null,那么就表示它的值不是有效的对象、数字、字符串和布尔值。
null可用于初始化变量,以避免产生错误,也可用于清除变量的内容,从而释放与变量相关联的内存空间。当把null赋值给某个变量后,这个变量中就不再保存任何有效的数据了。
2.2.5 未定义值
JavaScript中还有一个特殊的未定义值,用全局变量undefined来表示。当使用了一个并未声明的变量或声明了变量但还没有为变量赋值时,将返回 undefined 值。
null和undefined既有区别又有联系。null是JavaScript中的保留字,而undefined却不是JavaScript中的保留字,而是在ECMAScript V3标准中系统预定义的一个全局变量。
虽然undefined和null值不同,但是= =运算符却将二者看作相等。如果想区分判断null和undefined,那么应该使用测试一致性的运算符= = =或typeof运算符。
2.2.6 类型转换
JavaScript是一种松散类型的程序设计语言,并没有严格的规定变量的数据类型,也就是说,已经定义数据类型的变量,可以通过相应的方法进行数据类型的转换。
例如,如果字符串“5”和数字10进行算术加法运算,就需要首先将字符串“5”转换为数值型。
为了适应不同的情况,JavaScript提供了两种数据类型转换的方法:一种方法是将整个值从一种类型转换为另一种数据类型称为基本数据类型转换;另一种方法是从一个值中提取另一种类型的值,并完成类型转换。
JavaScript提供了3个方法实现基本数据类型之间的转换。
* String:将其他类型的值转换为字符串,如String123将数值123转换为字符串"123"。
* Number:将其他类型的值转换为数值型数据。例如,Numberfalse可以将布尔型直接量false转换为数值0。
* Boolean:将其他类型的值转换为布尔型值。除0、NaN、null、undefined、" " 空字符串被转换为false外,所有其他值都被转换为true。
实例2.1 JavaScript基本数据类型转换。其代码如下:
HTML
HEAD
TITLE基本数据类型转换TITLE
SCRIPT Language="JavaScript"
var num1 ="100";
var num2="200";
document.write"num1=''100'' num2=''200''";
var result=Numbernum1+Numbernum2;
document.write"br数值的运算结果为:",result;
var st=Stringnum1;
result=st+200;
document.write"br字符串与数字的运算结果为:",result;
var bo=Booleannum1;
result=bo+num2;
document.write"br字符串与布尔值的运算结果为:",result;
result=bo+200;
document.write"br数值与布尔值的运算结果为:",result;
document
SCRIPT
HEAD
BODY
BODY
HTML
将页面保存为shuju.htm文件,在浏览器中执行,结果如图2-1所示。
图2-1 基本数据类型程序运行结果
JavaScript中还提供了3种通过提取数据进行数据类型转换的方法,即parseInt、parseFloat和eval。
1 提取整数的parseInt方法。
parseInt方法用于将字符串转换为整数,其语法格式如下:
parseIntnumString,[radix]
其中,第一个参数为必选项,指定要转化为整数的字符串。当仅包括这个参数时,表示将字符串转换为十进制整数。第二个参数是可选的,使用该参数能够完成八进制、十六进制等数据的转换。但不管指定按哪一种进制转换,parseInt方法总是以十进制值返回结果。
例如,parseInt"123abc45"的返回值是123。而parseInt"100abc",8表示将"100abc"按八进制数进行转化,由于“abc”不是数字,所以实际是将八进制数100转换为十进制,转换的结果为十进制数64。
2 提取浮点数的parseFloat方法。
parseFloat方法用于将字符串转换为浮点数,其语法格式如下:
parseFloatnumString
该方法与parseInt方法相似,不同之处在于parseFloat方法能够转换浮点数。其参数即为要转换的字符串,如果字符串不以数字开始,则parseFloat方法将返回NaN,表示所传递的参数不能转换为一个浮点数。
例如,parseFloat"12.3abc"转化的结果为12.3。
3 计算表达式值的eval方法。
eval方法用于计算字符串表达式或语句的值,其语法格式如下:
evalcodeString
其参数是由JavaScript语句或表达式组成的一个字符串,eval方法能够计算出该字符串表达式的值。
例如,eval"2+3*5-8"可以计算表达式2+3*5-8的值,并返回计算结果9。
实例2.2 JavaScript数据类型转换方法的使用。其代码如下:
HTML
HEAD
TITLE数据类型转换方法的使用TITLE
SCRIPT Language="JavaScript"
var s1 ="100abc";
var s2="20.5";
document.write"s1=\"100abc\" s2=\"20.05\"";
num1=parseInts1;
num2=parseInts2;
document.write"br将s1转换为整型后的结果为:",num1;
document.write"br将s2转换为整型后的结果为:",num2;
num1=parseInts1,8;
num2=parseInts1,2;
document.write"br将s1作为八进制数转换的结果为:",num1;
document.write"br将s1作为二进制数转换的结果为:",num2;
num2=parseFloats2;
document.write"br将s2转换为浮点型的结果为:",num2;
result=eval"100"+s2;
document.write"breval\"100\"+s2的返回值为:",result;
SCRIPT
HEAD
BODY
BODY
HTML
将页面保存为tranferfun.htm文件,在浏览器中执行,结果如图2-2所示。
图2-2 数据类型转换方法的使用实例的运行效果
程序中eval"100"+s2在执行时,是先进行字符串“100”和字符串s2的连接运算,然后再计算整个字符串的值,而不是分别将“100”和s2转化为数值再进行算术加法运算,所以最后的结果为10020.5,而不是120.5。
2.3 变 量
与其他编程语言一样,JavaScript也是采用变量存储数据的。变量就是程序中一个已命名的存储单元。变量的主要作用是存取数据和提供存放信息的容器。对于变量必须明确变量的名称、类型和变量的值这3方面的特性。
2.3.1 变量的命名
JavaScript中的变量命名要遵守以下几点规则。
1 变量名必须以大写字母、小写字母或下划线_开头,其他的字符可以是字母、下划线或数字。变量名中不允许出现空格、“+”号、“-”号等其他符号。
2 不能使用JavaScript中的保留字作为变量名,如var、int、double、true等都不能作为变量的名称。
3??JavaScript变量名是区分大小写的,因此在使用时必须确保大小写相同。变量名大小写不同的变量,如name、Name、NAME,将被视为不同的变量。
4??JavaScript变量命名规范与Java类似,对于变量名为一个单词的,则建议其为小写字母,如area;对于变量名由两个或两个以上的单词组成的,则建议第二个和第二个以后的单词的首字母为大写,如userName。
5 在对变量命名时,最好把变量名与其代表的内容含义对应起来,以便能方便地区分变量的含义,如name变量就很容易让人明白其代表的内容。
例如,下面的变量名是合法的:
user_name
$user_name
_user_name
my_variable_example
myVariableExample
而下面的变量名是不合法的:
%user_name
1user_name
$user_name
~user_name
+user_name
2.3.2 变量的声明
JavaScript是弱类型语言,因此它不像大多数编程语言那样强制限定每种变量的类型,即在创建一个变量时可以不指定该变量将要存放何种类型的信息。
JavaScript中声明变量的方式有两种:一种是使用关键字var显式声明变量;另一种是使用赋值语句隐式声明变量。
说明:为了提高程序的可读性和正确性,建议对所有变量都使用显式声明。
1. 显式声明变量
格式1:
var 变量名1[,变量名2,变量名3,…]
下面是使用格式1声明变量的示例代码:
var i;
var a,b,c;
var name,password;
在声明变量的同时,可以为变量指定一个值,这个过程称为变量的初始化。但该过程不是强制性的,可以声明一个变量,但不初始化这个变量,此时,该变量的数据类型为undefined。
格式2:
var 变量名1=值1[,变量名2=值2 变量名3=值3,…]
下面是使用格式2声明变量的示例代码:
var name=''张三'';
var i=0,j=1;
var flag=true;
在为变量赋初值后,JavaScript会自动根据所赋的值而确定变量的类型。例如,上面的变量name会自动定义为字符串型,变量i和j为数值型,变量flag为布尔型。
2. 隐式声明变量
在JavaScript中声明变量时,还可以在使用格式2声明变量时省略关键字var,即直接在赋值语句中隐式地声明变量。使用赋值语句隐式声明变量的格式为:
格式3:
变量名=值;
例如,之前的变量声明语句,也可以写成以下格式:
name=''张三'';
i=0;j=1;
flag=true;
说明:在一行中有多个赋值语句时,之间要用分号分隔。
实例2.3 JavaScript中变量的声明。其代码如下:
HTML
HEAD
TITLE变量声明TITLE
SCRIPT Language="JavaScript"
var name;显式声明变量但未初始化变量
var age=20;显式声明变量并初始化变量
sex=''男'';使用赋值语句隐式声明变量
document.writeln"变量name的初始值:",name;
document.writeln"br变量name的类型是:",typeofname;
document.writeln"br变量age的初始值:",age;
document.writeln"br变量age的类型是:",typeofage;
document.writeln"br变量sex的初始值:",sex;
document.writeln"br变量sex的类型是:",typeofsex;
SCRIPT
HEAD
BODY
BODY
HTML
将页面保存为tranferfun.htm文件,在浏览器中执行,结果如图2-3所示。
图2-3 实例2.3的运行结果显式声明的变量的值
说明:为了提高程序的可读性和正确性,建议对所有的变量都使用关键字var显式声明变量,这样可以区分变量和直接量。此外,全局变量必须使用var关键字。
2.3.3 变量的赋值
在程序中任何位置需要改变变量的值时,都可以使用赋值语句来为变量赋值。赋值语句由变量名、等号以及确定的值组成。赋值语句的格式与格式3相同,即:
格式4:
变量名=值;
格式4与格式3的不同之处是,格式3中的变量名一般是在程序中第一次出现,表示在声明变量的同时给变量赋值,而格式4中的变量名可以是在程序中已经出现过的变量,经常是改变变量的值,甚至还能改变变量的类型。
实例2.4 JavaScript中变量的赋值。其代码如下:
HTML
HEAD
TITLE变量赋值TITLE
SCRIPT Language="JavaScript"
salary=1000; 在声明变量salary的同时给变量赋值
document.writeln"变量salary的初始值:",salary;
document.writeln"br变量salary的类型是:",typeofsalary;
salary=1500; 使用赋值语句改变变量salary的值
document.writeln"br变量salary改变后的值:",salary;
document.writeln"br变量salary的类型是:",typeofsalary;
salary=''我的工资'' 使用赋值语句将变量salary的类型由数值型变为了字符型
document.writeln"br变量salary改变类型后的值:",salary;
document.writeln"br变量salary改变类型后的类型是:",typeofsalary;
SCRIPT
HEAD
BODY
BODY
HTML
将页面保存为var2.htm文件,在浏览器中执行,结果如图2-4所示。
图2-4 实例2.4的运行结果显示每次赋值的变量的值
2.4 运 算 符
运算符是完成操作的一系列符号,运算符用于将一个或几个数据按照某种规则进行运算,并产生一个操作结果,它必须作用在数据上才有效,使用运算符的数据被称为操作数。
根据运算类别,可以将JavaScript中的运算符分为以下6类。
* 算术运算符。
* 赋值运算符。
* 关系运算符。
* 逻辑运算符。
* 字符串运算符。
* 其他运算符。
根据操作数的个数,可以将JavaScript中的运算符分为3类。
* 单目运算符:只作用于一个数据的运算符。
* 双目运算符:作用于两个数据上的运算符。
* 三目运算符:作用于3个数据上的运算符。
说明:除了条件运算符是三目运算符外,JavaScript中其他的运算符都是双目或者单目运算。
双目运算符基本语法格式如下:
操作数1 运算符 操作数2
例如,100+200、“This is”+“a book.”等。
双目运算符包括+加、-减、*乘、除、%取模、|按位或、按位与、左移、右移、右移,零填充等。
单目运算符是只需要一个操作数的运算符,此时运算符可能在运算符前或运算符后。基本语法格式如下:
操作数1 运算符

运算符 操作数1
单目运算符包括-单目减、!逻辑非、~取补、++递加1、--递减1等。
2.4.1 算术运算符
JavaScript中的算术运算符如表2-4所示。
表2-4 JavaScript中的算术运算符
运算符
说 明
+
加法运算符
-
减法运算符
*
乘法运算符

除法运算符
%
取模运算符,即计算两个数相除的余数
-
取反运算符,即将运算数的符号变成相反的
续表
运算符
说 明
++
增量运算符,递加1并返回数值或返回数值后递加1,取决于运算符的位置在操作数之前还是之后
--
减量运算符,递减1并返回数值或返回数值后递减1,取决于运算符的位置在操作数之前还是之后
1. 加+、减-、乘*、除运算符
加+、减-、乘*、除运算符符合日常的数学运算规则,两边的运算数的类型要求是数值型的+也可用于字符串连接操作,如果不是数值型的,JavaScript会将它们自动转换为数值型。
2. 取模运算符%
取模运算符也称为取余运算符,其两边的运算数的类型也必须是数值型的。A%B的结果是数A除以数B后得到的余数,如11%2=1。
以上的运算符都是双目运算符,使用这些运算符时一定要特别小心,有可能会出现NaN或其他错误的结果,如果除数为0就会出现问题。
3. 取反运算-
取反运算的作用就是将值的符号变成相反的,即把一个正值转换成相应的负值;反之亦然。例如,x=5,则-x=-5。该运算符是单目运算符,同样也要求操作都是数值型的,如果不是数值型的,会被自动转换成数值型。
4. 增量运算符++和减量运算符--
这两种运算符实际上是代替变量x进行x=x+1和x=x-1两种操作的简单而有效的方法,但是该运算符是置于变量之前和置于变量之后所得到的结果是不同的。
将运算符置于变量之前,表示先对变量进行加1或减1操作,然后再在表达式中进行计算。
例如,如果x=5,则++x+4=10,这是因为x先加1得到6,然后再进行加法运算,所以得到结果10,这相当于先执行了x=x+1,然后执行x+4。
同理,如果x=5,则--x+4=8,这是因为x先减1得到4,然后再进行加法运算,所以得到结果8,这相当于先执行了x=x-1,然后执行x+4。
如果将运算符置于变量之后,表示先将变量的值在表达式中参加运算后,再进行加1或减1。
例如,如果x=5,则x+++4=9,这是因为x的值先与4相加得到9,然后x才加1得到6,这相当于先执行了x+4,然后再执行x=x+1。
同理,如果x=5,则x--+4=9,这是因为x的值也是先与4相加得到9,然后x才减1得到4,这相当于先执行了x+4,然后再执行x=x-1。
这两个运算符都是单目运算符,同样也要求操作数都是数值型的,如果不是数值型的,会被自动转换成数值型。
实例2.5 JavaScript中增量和减量运算符的使用。其代码如下:
HTML
HEAD
TITLE增量运算符和减量运算符的使用TITLE
SCRIPT Language="JavaScript"
var a=5;
var b;
document.write"a=",a;
b=a++;
document.write"br执行b=a++后,a=",a;
document.write" b=",b;
a=5;
document.write"bra=",a;
b=++a;
document.write"br执行b=++a后,a=",a;
document.write" b=",b;
a=5;
document.write"bra=",a;
b=a--;
document.write"br执行b=a--后,a=",a;
document.write" b=",b;
a=5;
document.write"bra=",a;
b=--a;
document.write"br执行b=--a后,a=",a;
document.write" b=",b;
a=5;
document.write"bra=",a;
b=a+++5;
document.write"br执行b=a+++5后,a=",a;
document.write" b=",b;
a=5;
document.write"bra=",a;
b=++a+5;
document.write"br执行b=++a+5后,a=",a;
document.write" b=",b;
a=5;
document.write"bra=",a;
b=a--+5;
document.write"br执行b=a--+5后,a=",a;
document.write" b=",b;
a=5;
document.write"bra=",a;
b=--a+5;
document.write"br执行b=--a+5后,a=",a;
document.write" b=",b;
SCRIPT
HEAD
BODY
BODY
HTML
将页面保存为var3.htm文件,在浏览器中执行,结果如图2-5所示。
图2-5 增量和减量运算符实例的运行结果
2.4.2 赋值运算符
在之前创建变量时,实际上已经使用了赋值运算符=给变量赋初值。赋值运算符=的作用是将其右边的表达式的值给左边的变量。
例如,a=5+1就表示把赋值号右边的表达式5+1计算出来的结果值6给左边的变量a,这样变量a的值就是6。
赋值运算符=还可以用来给多个变量指定同一个值,如a=b=c=1,执行该语句后,变量a、b、c的值都为1。
除了直接赋值外,还可以在赋值运算符=之前加上其他的运算符,构成复合赋值运算符。表2-5列出了常用的复合赋值运算符。
表2-5 JavaScript中的复合赋值运算符
运算符
说 明
=
赋值运算符,将运算符左边的变量设置为右边表达式的值
+=
加法赋值运算符,将运算符左边的变量加上右边表达式的值,即a+=b,等同于a=a+b
-=
减法赋值运算符,将运算符左边的变量减去右边表达式的值,即a-=b,等同于a=a-b
*=
乘法赋值运算符,将运算符左边的变量乘以右边表达式的值,即a*=b,等同于a=a*b
=
除法赋值运算符,将运算符左边的变量除以右边表达式的值,即a=b,等同于a=ab
%=
取模赋值运算符,将运算符左边的变量用右边表达式的值求模,即a%=b,等同于a=a%b
实例2.6 JavaScript中赋值运算符的使用。其代码如下:
HTML
HEAD
TITLE赋值运算符的使用TITLE
SCRIPT Language="JavaScript"
var a=10;
document.write"a=",a;
a+=3;
document.write" 执行a+=3后,a=",a;
a=10;
document.write"bra=",a;
a-=3;
document.write" 执行a-=3后,a=",a;
a=10;
document.write"bra=",a;
a*=3;
document.write" 执行a*=3后,a=",a;
a=10;
document.write"bra=",a;
a=3;
document.write" 执行a=3后,a=",a;
a=10;
document.write"bra=",a;
a%=3;
document.write" 执行a%=3后,a=",a;
SCRIPT
HEAD
BODY
BODY
HTML
将页面保存为var4.htm文件,在浏览器中执行,结果如图2-6所示。
图2-6 赋值运算符实例的运行结果
2.4.3 关系运算符
关系运算符又称为比较运算符,是一个双目运算符,用于比较操作数之间的大小等关系,关系运算符的操作数可以是数值、字符串,也可以是布尔值,其运算结果是true或false。JavaScript中的关系运算符如表2-6所示。
表2-6 JavaScript中的关系运算符
运算符
说 明

小于
=
小于等于

大于
=
大于等于
==
等于
===
严格等于
!=
不等于
!==
严格不等于
说明:严格等于===和严格不等于!==运算符是ECMAScript标准中的运算符,因此只在Navigator 4.06以上和IE4以上的浏览器中支持。
如果比较的两个操作数为数值型,则按数学上的比较原则来比较。如果比较的两个操作数为布尔值,JavaScript认为true大于false。如果比较的两个操作数为字符串型时,要按字符编码依次自左到右进行比较。
实例2.7 JavaScript中关系运算符的使用。其代码如下:
HTML
HEAD
TITLE比较运算符TITLE
SCRIPT Language="JavaScript"
var i=5,j=8;
var b1=true,b2=false;
var s1="Shanghai";
var s2="ShangHai";
var s3="I am a boy."
var s4="I am a girl."
var s5="北京";
var s6="天津";
document.write"数值型比较:58=",ij;
document.write"br布尔值比较:truefalse=",b1b2;
document.write"br字符串比较:";
document.write"br''Shanghai''''ShangHai''=",s1s2;
document.write"br''Shanghai''==''ShangHai''=",s1==s2;
document.write"br''I am a boy.''''I am a girl.''=",s3s4;
document.write"br''北京''''天津''=",s5s6;
document.write"br忽略大小写比较
''Shanghai''==''ShangHai''=",s1.toUpperCase==s2.toUpperCase;
SCRIPT
HEAD
BODY
BODY
HTML
程序中使用s1.toUpperCase和s2.toUpperCase方法将字符串s1和s2全部转换为大写字母。将页面保存为var5.htm文件,在浏览器中执行,结果如图2-7所示。
图2-7 关系运算符实例的运行结果
JavaScript提供的运算符==和!=分别用于完成判断两个操作数是否相等,其中操作数可以是各种类型。除了相等和不相等运算符之外,JavaScript还提供了严格等于===和严格不等于!==运算符,用于测试两个操作数是否完全一样,包括值是否相等以及类型是否相同。这两个运算符在比较之前不进行类型转换直接测试是否相等。只有两个操作数的值相等并且类型也相同时,一致性测试运算===的计算结果才为true;否则其值为false。例如,表达式“58”==58的结果为true,而表达式“58”===58的结果为false,原因在于它们的数据类型不一致一个操作数为字符串型,另一个为数值类型。
2.4.4 逻辑运算符
逻辑运算符通常在条件语句中使用,它们与关系运算符一起构成复杂的判断条件。JavaScript中提供了3种逻辑运算符:逻辑与、逻辑或||、逻辑非!,如表2-7所示。
表2-7 JavaScript中的逻辑运算符
运算符
说 明

逻辑与,当两个操作数的值都为true时,运算结果为true
||
逻辑或,只要两个操作数中有一个值为true时,运算结果就为true
!
逻辑非,对操作数取反,即true值非运算的结果为false,false值非运算的结果为true
其中逻辑与和逻辑或运算符是双目运算符,而逻辑非运算符是单目运算符。它们所连接的操作数都是逻辑型变量或表达式。对于连接的非逻辑型变量或表达式,在JavaScript中将非0的数值看作是true,而将0看作是false。
1 逻辑与。只有当两个操作数的值都为true时,运算结果才为true;否则为false。因此,如果逻辑与运算符左边的表达式的计算结果为零、null或空字符串,那么整个表达式的结果就肯定是false;如果逻辑与运算符左边的表达式的计算结果为true,此时计算逻辑与运算符右侧的表达式,如果这个表达式的值也是true,那么整个表达式的结果为true;否则,如果左边值为true,右边值为false,整个表达式的值将为false。
2 逻辑或||。只要两个操作数中有一个值为true时,运算结果就为true,如果两个操作数的值都为假,则运算结果为假。如果逻辑或运算符左边的表达式计算结果为true,那么就不再计算或运算符右边的表达式的值,并且整个表达式的值为true;如果逻辑或运算符左边的表达式计算结果为false,那么计算或运算符右侧的表达式的值,如果这个值为true,那么整个表达式的值为true;如果右侧表达式计算的结果也为false,那么整个表达式的值为false。
3 逻辑非!。用于否定一个运算的结果。“真”的逻辑非值为“假”,“假”的逻辑非值为“真”。逻辑非是一个单目运算符,它只有一个操作数,如!true或!58 。
实例2.8 JavaScript中逻辑运算符的使用。其代码如下:
HTML
HEAD
TITLE逻辑运算符TITLE
SCRIPT Language="JavaScript"
var a=10,b=20,c=30,d=40;
document.write"a=",a," b=",b," c=",c," d=",d;
document.write"brtruefalse=",truefalse;
document.write"brtrue||false=",true||false;
document.write"br!true=",!true;
document.write"br!false=",!false;
document.write"brabdc=",abdc;
document.write"brab||dc=",ab||dc;
document.write"br!ab=",!ab
SCRIPT
HEAD
BODY
BODY
HTML
将页面保存为var6.htm文件,在浏览器中执行,结果如图2-8所示。
图2-8 逻辑运算符实例的运行结果
2.4.5 字符串运算符
在JavaScript中只有一个字符串运算符,即连接运算符+,它是一个双目运算符,可以将两个字符串连接起来形成一个新的字符串。例如"This"+"is"的运算结果为"This is", "中国"+"北京"运算结果为"中国北京"。
当操作数中至少有一个操作数是字符串时,JavaScript将自动把另一操作数转换为字符串。例如,"36"+2的运算结果为"362","It is"+true的运算结果为"It is true"。
另外,字符串连接运算符还可以和前面的赋值运算符联合使用,形成"+="运算符,它的作用是,将运算符右侧的字符串拼接到该运算符左侧字符串的后面,并将结果赋值给运算符左侧的操作数。
实例2.9 JavaScript中字符串运算符的使用。其代码如下:
HEAD
TITLE字符串运算符TITLE
SCRIPT Language="JavaScript"
var a="this";
var b=" is ";
var c=10;
var d=true;
var e;
document.write"a=",a," b=",b," c=",c," d=",d;
document.write"bra+b=",e=a+b;
document.write"bre=",e;
document.write"bre+c=",e+c;
document.write"bre+d=",e+d;
document.write"brc+c=",c+c;
document.write"brd+d=",d+d;
document.write"bre+e=",e+e;
e+=c;
document.write"br执行完e+=c后,e=",e;
SCRIPT
HEAD
BODY
BODY
HTML
将页面保存为var7.htm文件,在浏览器中执行,结果如图2-9所示。
图2-9 字符串运算符实例的运行结果
说明:如果字符串运算符中两个操作数都为数值型或布尔型,则按加法进行运算。布尔型中的true被转换为数值1,false则转换为数值0。
2.4.6 其他运算符
除了前面介绍的各种运算符以外,JavaScript还提供了位操作运算符、条件运算符等其他的运算符。表2-8 列出的是有关位操作的运算符。
表2-8 JavaScript中的位运算符
运算符
说 明
~
按位取反运算符

按位左移运算符

按位右移运算符

无符号右移运算符

按位与运算符
^
按位异或运算符
|
按位或运算符
=
按位与赋值运算符
|=
按位或赋值运算符
^=
按位异或赋值运算符
=
按位左移赋值运算符
=
按位右移赋值运算符
=
按位无符号右移赋值运算符
表2-9列出了JavaScript中其他的一些运算符。
表2-9 JavaScript中的其他运算符
运算符
说 明
? :
三目条件运算符。例如,x?a:b表示如果x为真,则整个表达式的值为a的值;否则为b的值
,
逗号运算符,计算两个表达式的值,并返回第二个表达式的值
delete
用于删除对象并释放该对象所占用的空间
typeof
用于返回操作数的数据类型
void
运算符对表达式求值,并返回 undefined
instanceof
判断对象是否是指定的对象类型
new
用于创建用户自定义对象实例
in
判断指定属性是否是对象的属性。当指定属性是对象的属性时返回真;否则返回假
2.4.7 运算符的优先级
运算符优先级是指在一个表达式中,运算符的优先顺序,程序的执行顺序将依据运算符的优先级顺序。例如,在进行四则运算时,规则是先乘除、后加减,即乘法和除法的运算优先级高于加法和减法的优先级,同一优先级的运算符按从左到右方式进行计算,这就是运算符的结合方式。所有的算术运算符都是从左向右执行,所以如果有两个或者更多的算术运算符有相同的优先级,那么左边的将先执行,然后依次执行。
如下面的表达式:
x = 5 + 9 – 3 * 2 + 306
该例子中,乘和除将首先被运算,接下来是加和减,运算中还包含了乘和除两个优先级相同的运算符号,所以左边的乘法将先被执行,然后是除;3*2等于6,306等于5,则原式变为:x=5+9–6+5,接下来按从左到右的顺序进行加减运算,最后的结果x=13。
如果想改变运算的执行顺序,就需要使用成对的括号,括号内的运算将比括号外的运算先执行。如果同样是上面几个运算数,写成下面的表达式:
x = 5 + 9 – 3 * 2 + 306
括号里的表达式将先被执行,结果是11,原式变为x=11*2+306,然后进行乘除运算,接下来是加减运算,最后的结果是27,这个结果与前一个例子的结果就完全不相同了。
如果两个或者两个以上的运算符有相同的优先级,JavaScript根据运算符的执行顺序进行排序,一般都是从左向右。但是也有一些是从右向左。表2-10中列出了JavaScript中的运算符优先级以及运算符的结合方式,同一优先级的运算符放在同一行上,表格自上向下运算符的优先级逐渐降低,在“结合性”一栏中列出的运算符的结合性是从右向左的,其余运算符的结合性均为从左向右。
表2-10 JavaScript中运算符优先级和结合性
优先级
运算符
结合性从右向左
1
括号运算, 函数调用, 数组游标
2
!, ~, +, -, ++, --, typeof, new,void, delete
+一元加, -一元减, ++, --, !, ~
3
*, , %
4
+, -
5
, ,
6
, =, , =
7
= =, != , = = =, != =
8

9
^
10
|
11

12
||
续表
优先级
运算符
结合性从右向左
13
?:
?:
14
=, +=, -=, *=, =, %=, =, =,=, =, ^=, !=
=, *=, =, +=, -=,
%=, =, =,=, ^=,!=
15
逗号 ,操作符
课 后 小 结
本章主要介绍了JavaScript语言的基本语法规则,以及数据类型、变量和运算符的基本使用方法,为后续JavaScript的流程控制语句的学习打下基础。
习 题
一、填空题
1.??JavaScript里面的标识符不能以__________开头。
2. 根据变量的作用域,可以把变量分为_____________或者____________。
3. 在JavaScript运算符中,______拥有最高的优先级。
4.??__________运算符可以连接两个字符串。
二、选择题
1. 下面 是声明变量和赋值的正确语法。
A.var myVariable="Hello";B.var myVariable=Hello;
C."Hello" =var myVariable;D.var "Hello"= myVariable;
2. 下面 是合法的变量名。
A.%varoable_name B.1varoable_name
C.varoable_nameD.+varoable_name
3. 下述 不是引用数据类型。
A.函数B.数组C.布尔类型D.对象
4. 下面 不是浮点数。
A.-439.35 B.3.17C.10D.-7e11
5. 下面 转义字符可以在字符串中加入一个换行操作。
A.\bB.\fC.\nD.\r
6. 在语句return Value=count++中,如果count的初始值为10,则Value的值为 。
A.10B.11C.12D.20
7. 表达式50=="fifty"的值为 。
A.trueB.falseC.50D.“fifty”
8. 如果x的值为1,执行y=evalx+"2*2";语句后,y的值为 。
A.“1+2*2”B.“12*2”C.6D.24
三、上机练习题
定义3个变量,分别为整型、浮点型和字符串,对它们进行算术运算加、减、乘、除等,将结果输出到页面上。

 

 

書城介紹  | 合作申請 | 索要書目  | 新手入門 | 聯絡方式  | 幫助中心 | 找書說明  | 送貨方式 | 付款方式 香港用户  | 台灣用户 | 海外用户
megBook.com.tw
Copyright (C) 2013 - 2024 (香港)大書城有限公司 All Rights Reserved.