2.7 数据类型与变量
数据类型是对一种数据的描述,任何一种程序语言都可以处理多种数据。有些数据的值是不确定的,在不同的时刻有不同的取值,在JavaScript语言中用变量来处理这些数据。
2.7.1 数据类型
JavaScript中的数据类型主要包括以下3类。
•简单数据类型:JavaScript中常用的3种基本数据类型分别是数值数据类型(number)、文本数据类型(string)和布尔数据类型(boolean)。
•复合数据类型:主要包括用来保存一组相同或不同数据类型数据的数组;用来保存一段程序,这段程序可以在JavaScript中反复被调用;用来保存一组不同类型的数据和函数等的对象。
•特殊数据类型:主要包括没有值存在的空数据类型null和没有进行定义的无定义数据类型undefined。
1.基本数据类型
1)数值数据类型
数值数据类型的值就是数字,例如,3、6.9、-7等都是数值类型数据。在JavaScript中没有整数和浮点数之分,无论什么样的数字,都属于数字型,其有效范围在10-308~10308之间。大于10308的数值,超出了数值类型的上限,即无穷大,用Infinity表示;小于10-308的数值,超出了数值类型的下限,即无穷小,用-Infinity表示。如果JavaScript在进行数学运算时产生了错误或不可预知的结果,就会返回NaN(Not a Number)。NaN是一个特殊的数字,属于数值型。
2)字符串数据类型
字符串数据类型是由双引号(" ")或单引号(' ')括起来的0个或多个字符组成的序列,它可以包括大小写字母、数字、标点符号或其他可显示字符以及特殊字体,也可以包含汉字、一些字符串示例及其解释,如表2-5所示。
字符串 | 解释 |
"Hello Howin!" | 字符串为:Hello Howin! |
"英达,你好!" | 字符串为:英达,你好! |
"z" | 含单个字符z的字符串 |
's' | 含单个字符s的字符串 |
" " | 不含任何字符的空字符串 |
" " | 由空格构成的字符串 |
" 'Hello!' I said" | 字符串为:‘Hello!’I said |
' "Hello"! I said' | 字符串为:“Hello”! I said |
在使用字符串时,应注意以下几点。
(1)作为字符串定界符的引号必须匹配。即字符串前面使用的引号是成对的。在用双引号做定界符的字符串中可以直接含有单引号,而在用单引号做定界符的字符串中也可以直接含有双引号。
(2)空字符串中不包含任何字符,用一对引号表示,引号之间不包含任何空格。
(3)引号必须是在英文输入法状态下输入的。
通过转义字符“\”可以在字符串中添加不可显示的特殊字符,或者防止引号匹配混乱问题。常用转义字符如表2-6所示。
转义字符 | 含义 |
\b | 退格 |
\f | 换页 |
\n | 换行 |
\t | TAB符号 |
\' | 单引号 |
\" | 双引号 |
\\ | 反斜杠 |
3)布尔型
布尔(boolean)型也就是逻辑型,主要进行逻辑判断,它只有两个值true和false,分别表示真和假。在JavaScript中可以用0表示flase,非0整数表示true。
2.复合数据类型
1)数组
在JavaScript中数组主要用来保存一组相同或不同数据类型的数据。
2)函数
在JavaScript中函数用来保存一段程序,这段程序可以在JavaScript中反复被调用。
3)对象
在JavaScript中对象用来保存一组不同类型的数据和函数等。
3.特殊数据类型
1)无定义数据类型undefined
undefined的意思是“未定义的”,表示没有进行定义,通常只有执行JavaScript代码时才会返回该值。在以下几种情况下通常都会返回undefined。
(1)在引用一个定义过但没有赋值的变量时,会返回undefined。
(2)在引用一个不存在的数组元素时,会返回undefined。
(3)在引用一个不存在的对象属性时,会返回undefined。
提 示
由于undefined是一个返回值,因此,可以对该值进行操作,如输出该值或将该值与其他值作比较。
2)空数据类型null
null的中文意思是“空”,表示没有值存在,与字符串、数值、布尔、数组、对象、函数和undefined都不同。在作比较时,null也不会与以上任何数据类型相等。
2.7.2 变量
变量,顾名思义,在程序运行过程中,其值可以改变。变量是存储信息的单元,它对应于某个内存空间。变量用于存储特定数据类型的数据。用变量名代表其存储空间。程序能在变量中存储值和取出值。可以把变量比作超市的货架(内存),货架上摆放着商品(变量),可以把商品从货架上取出来(读取),也可以把商品放入货架(赋值)。
1.标识符
用JavaScript编写程序时,很多地方都要求用户给定名称。例如,JavaScript中的变量、函数等要素定义时都要求给定名称。可以将定义要素时使用的字符序列称为标识符。这些标识符必须遵循如下命名规则。
(1)标识符只能由字母、数字、下划线和中文组成,而不能包含空格、标点符号、运算符等其他符号。
(2)标识符的第一个字符必须是字母、下划线或者中文。
(3)标识符不能与JavaScript中的关键字名称相同,例如if、else等。
例如,下面为合法的标识符:
UserName Int2 _File_Open Sex
例如,下面为不合法的标识符:
99BottlesofBeer Namespace It's-All-Over
2.变量的声明
JavaScript是一种弱类型的程序设计语言,变量可以不声明直接使用。所谓声明变量是指为变量指定一个名称。声明变量后,就可以把它们用做存储单元。
1)声明变量
JavaScript中使用关键字“var”声明变量,在这个关键字之后的字符串将代表一个变量名。其格式为:
var 标识符;
例如,声明变量username,用来表示用户名,代码如下。
var username;
另外,一个关键字var也可以同时声明多个变量名,多个变量名之间必须用逗号“,”分隔,例如,同时声明变量username、pwd、age,分别表示用户名、密码和年龄,代码如下。
var username,pwd,age;
2)变量赋值
要给变量赋值,可以使用JavaScript中的赋值运算符,即等于号(=)。
声明变量名并赋值,例如,声明变量username,并赋值为“张三”,代码如下。
var username= "张三";
声明变量之后,对变量赋值,或者对未声明的变量直接赋值。例如,声明变量age,然后再为它赋值,直接对变量count赋值。
var age; //声明变量 age=18; //对已声明的变量赋值 count=4; //对未声明的变量直接赋值
提 示
JavaScript中的变量如果未初始化(赋值),则默认值为undefined。