1.整型数据
在JavaScript程序中,十进制的整数是一个数字序列。例如:
0
7
﹣8
1000
JavaScript的数字格式允许精确地表示﹣900719925474092(﹣253)和900719925474092(253)之间的所有整数(包括﹣900719925474092(﹣253)和900719925474092(253))。但是使用超过这个范围的整数,就会失去尾数的精确性。需要注意的是,JavaScript中的某些整数运算是对32位的整数执行的,它们的范围从﹣2147483648(﹣231)到2147483647(231-1)。
2.十六进制和八进制
JavaScript不但能够处理十进制的整型数据,还能识别十六进制(以16为基数)的数据。所谓十六进制数据,是以“0X”和“0x”开头,其后跟随十六进制数字串的直接量。十六进制的数字可以是0到9中的某个数字,也可以是a(A)到f(F)中的某个字母,它们用来表示0到15之间(包括0和15)的某个值,下面是十六进制整型数据的例子:
0xff //15*16+15=225(基数为10)
0xCAFE911
尽管ECMAScripr标准不支持八进制数据,但是JavaScript的某些实现却允许采用八进制(基数为8)格式的整型数据。八进制数据以数字0开头,其后跟随一个数字序列,这个序列中的每个数字都在0和7之间(包括0和7),例如:
0377 //3*64+7*8+7=255(基数为10)
由于某些JavaScript实现支持八进制数据,而有些则不支持,所以最好不要使用以0开头的整型数据,因为不知道某个JavaScript的实现是将其解释为十进制,还是解释为八进制。
3.浮点型数据
浮点型数据可以具有小数点,它们采用的是传统科学记数法的语法。一个实数值可以被表示为整数部分后加小数点和小数部分。
此外,还可以使用指数法表示浮点型数据,即实数后跟随字母e或E,后面加上正负号,其后再加一个整型指数。这种记数法表示的数值等于前面的实数乘以10的指数次幂。
语法:
[digits] [.digits] [(E|e[(+|-)])]
例如:
1.2
.33333333
3.12e11 //3.12×1011
1.234E﹣12 //1.234×10﹣124.字符串
字符串(string)是由Unicode字符、数字、标点符号等组成的序列,它是JavaScript用来表示文本的数据类型。程序中的字符串型数据是包含在单引号或双引号中的,由单引号定界的字符串中可以含有双引号,由双引号定界的字符串中也可以含有单引号。
例如:
(1)单引号括起来的一个或多个字符,代码如下:
'啊'
'活着的人却拥有着一颗沉睡的心'
(2)双引号括起来的一个或多个字符,代码如下:
"呀"
"我想学习JavaScript"
(3)单引号定界的字符串中可以含有双引号,代码如下:
'name="myname"'
(4)双引号定界的字符串中可以含有单引号,代码如下:
"You can call me 'Tom'!"
5.布尔类型
数值数据类型和字符串数据类型的值都无穷多,但是布尔数据类型只有两个值,这两个合法的值分别由直接量“true”和“false”表示,它说明了某个事物是真还是假。
布尔值通常在JavaScript程序中用来比较所得的结果。例如:
n==1
这行代码测试了变量n的值是否和数值1相等。如果相等,比较的结果就是布尔值true,否则结果就是false。
布尔值通常用于JavaScript的控制结构。例如,JavaScript的if/else语句就是在布尔值为true时执行一个动作,而在布尔值为false时执行另一个动作。通常将一个创建布尔值与使用这个比较的语句结合在一起。例如:
if (n==1)
m=n+1;
else
n=n+1;
本段代码检测了n是否等于1。如果相等,就给m增加1,否则给n加1。
有时候可以把两个可能的布尔值看作是“on(true)”和“off(false)”,或者看作是“yes(true)”和“no(false)”,这样比将它们看作是“true”和“false”更为直观。有时候把它们看作是1(true)和0(false)会更加有用(实际上JavaScript确实是这样做的,在必要时会将true转换成1,将false转换成0)。
6.特殊数据类型
1.转义字符
以反斜杠开头的不可显示的特殊字符通常称为控制字符,也被称为转义字符。通过转义字符可以在字符串中添加不可显示的特殊字符,或者防止引号匹配混乱的问题。JavaScript常用的转义字符如表所示。
在document.writeln();语句中使用转义字符时,只有将其放在格式化文本块中才会起作用,所以脚本必须在<pre>和</pre>的标签内。
例如,下面是应用转义字符使字符串换行,程序代码如下:
document.writeln("<pre>");
document.writeln("轻松学习\nJavaScript语言!");
document.writeln("</pre>");
运行结果:
轻松学习
JavaScript语言!
如果上述代码不使用<pre>和</pre>的标签,则转义字符不起作用,代码如下:
document.writeln("快快乐乐\n平平安安!");
运行结果:
快快乐乐平平安安!
2.未定义值
未定义类型的变量是undefined,表示变量还没有赋值(如var a;),或者赋予一个不存在的属性值(如var a=String.notProperty;)。
此外,JavaScript中有一种特殊类型的数字常量NaN,即“非数字”。当在程序中由于某种原因发生计算错误后,将产生一个没有意义的数字,此时JavaScript返回的数字值就是NaN。
3.空值(null)
JavaScript中的关键字null是一个特殊的值,它表示为空值,用于定义空的或不存在的引用。如果试图引用一个没有定义的变量,则返回一个null值。这里必须要注意的是:null不等同于空的字符串("")或0。
由此可见,null与undefined的区别是,null表示一个变量被赋予了一个空值,而undefined则表示该变量尚未被赋值。