JavaScript 的数据类型
- 1. 概述
- 2. 数值型
- 2.1 概述
- 2.2 八进制
- 2.3 十进制
- 2.4 十六进制
- 2.5 浮点型数据
- 2.6 特殊值 Infinity
- 2.7 特殊值 NaN
- 3. 字符串型
- 4. 布尔型
- 5. 特殊数据类型
- 5.1 未定义值
- 5.2 空值(null)
1. 概述
JavaScript 的数据类型分为基本数据类型和复合数据类型;
2. 数值型
2.1 概述
数值型 是最基本的数据类型;
JavaScript 和其他程序语言(如 C 和 Java)的不同之处在于,它不区分整型数值和浮点型数值;
JavaScript 中,所有的数值都由浮点型表示的;
JavaScript 采用 IEEE754 标准定义的 64 位浮点格式表示数字,即它能表示的最大值是 ± 1.7976931348623157e+308,最小值是 5e-324;
当一个数字直接出现在 JavaScript 中,称之为数值直接量,JavaScript 支持的数值直接量的形式有6种;
2.2 八进制
ECMAScritp 标准不支持八进制数据,但 JavaScript 的某些实现缺允许采用八进制(基数为8)格式的整型数据;
八进制数据以数字 0 开头,再跟随一个数字序列,这个序列中的每个数字都为 0~ 7 的整数(包括 0 和 7);
示例如下:
06
0236
由于某些 JavaScript 实现支持八进制数据,而有些则不支持,因此最好不要采用以 0 开头的整型数据,因为不知道某个 JavaScript 的实现是将其解释为十进制,还是解释为八进制;
<html>
<head>
<meta charset="utf-8">
<title></title>
</head>
<body>
<script type="text/javascript">
document.write("数字234不同进制的输出结果:")
document.write("<p>十进制:")
document.write(234)
document.write("<br />八进制")
document.write(0234)
document.write("<br />十六进制")
document.write(0X234)
</script>
</body>
</html>
2.3 十进制
JavaScript 中,十进制的整数是一个由 0~9 组成的数字序列;
示例如下:
9
5
-20
110
2.4 十六进制
JavaScript 不但能处理十进制的整型数据,还能识别十六进制(以 16 为基数) 的数据;
十六进制数据,是以 “0X” 或 “0x” 开头,再跟随十六进制的数字序列;
十六进制的数字是由 0~9 的 10 个数字,以及 a(A)~ f(F)6 个字母组成的数字组成,它们用来表示 0~15(包括 0 和 15)的某个值;
示例如下:
0Xaa
0X234
0xCAFE911
2.5 浮点型数据
浮点型数据能具有小数点,表示方法有两种:
- 传统记数法
传统记数法是将一个浮点数分为整数部分、小数点和小数部分,若整数部分为 0 ,能省略整数部分;
示例如下:
2.2
55.23
366
- 科学计数法
科学计数法表示浮点型数据,即实数后跟随字母 e 或 E,再加上一个带正号或负号的整数指数,正号能省略;
示例如下:
5e+3
3.11e12
123E-11
注意: 在科学记数法中,e 或 E 后面的整数表示 10 的指数次幂,这种记数法表示的数值等于前面的实数乘以 10 的指数次幂;
<html>
<head>
<meta charset="utf-8">
<title></title>
</head>
<body>
<script type="text/javascript">
document.write("科学记数法表示的浮点数的输出结果:")
document.write("<p>")
document.write(4E+5)
document.write("<br />")
document.write(4.5e3)
document.write("<br />")
document.write(1.34E-3)
</script>
</body>
</html>
2.6 特殊值 Infinity
JavaScript 中有一个特殊的数值 Infinity(无穷大),若一个数值超出 JavaScript 所能表示的最大值范围,JavaScript 就会输出 Infinity;
若一个数值超出 JavaScript 所能表示的最小值范围,JavaScript 就会输出 -Infinity;
2.7 特殊值 NaN
JavaScript 中还要一个特殊的值 NaN,即 “非数字”;
在进行数学运算时产生了未知的结果或错误,JavaScript 就会返回 NaN,它表示该数学运算的结果是一个非数字;
如,用 0 除以 0 的输出结果就是 NaN;
3. 字符串型
字符串是由 0 个或多个字符组成的序列,它能包含大小写字母、数字、标点符号或其他字符,也可以包含中文;
它是 JavaScript 用来表示文本的数据类型;
程序中的字符串型数据时包含在单引号或双引号中的,由单引号定界的字符串中能包含双引号,由双引号定界的字符串中也能包含单引号;
注意: 空字符串不包含任何字符,也不包含任何空格,用一对引号表示," " 或 ’ ';
示例如下:
- 单引号括起来的字符
‘您好’
‘techer’ - 双引号括起来的字符
“123”
“JavaScript” - 单引号定界的字符中能包含双引号
‘ccc"d’
'132"321" ’ - 双引号定义的字符串中能包含单引号
“I’m teacher”
"hello ‘Tom’ "
注意: 包含字符串的引号必须匹配,若字符串前面使用的是双引号,在字符串后面也必须使用双引号,反之都使用单引号;
有时会出现,字符串中使用的引号会产生匹配混乱的问题;
“字符串是包含在单引号’或双引号"中的”
这时要使用转义字符;JavaScript 的转义字符是==“\”==,通过转义字符能在字符添加不可显示的特殊字符,或防止引号匹配混乱的问题;
“字符串是包含在单引号’或双引号"中的”
<html>
<head>
<meta charset="utf-8">
<title></title>
</head>
<body>
<script type="text/javascript">
document.write("I like 'HTML'");
document.write("<br />")
document.write('I like "HTML"');
document.write("<br />")
document.write("I like \"HTML\"");
document.write("<br />")
document.write('I like \'HTML\'');
</script>
</body>
</html>
4. 布尔型
数值数据类型和字符串数据类型的值都是无穷多,但布尔数据类型只有两个值,TRUE(真)或 FALSE(假),它说明了某个事务是真还是假;
布尔值常用在 JavaScript 中作为比较所得的结果;
布尔值常用在 JavaScript 的控制结构;
5. 特殊数据类型
5.1 未定义值
未定义值就是 undefined,表示变量还没赋值(如 var b:);
5.2 空值(null)
JavaScript 中的关键字 null 是一个特殊的值,它表示为空值,用来定义空的或不存在的引用;
注意: null 不等于空的字符串(" ")或 0;
当使用对象进行编程时可能会用到这个值;
null 与 undefined 的区别是:null 表示一个变量被赋予了一个空值,而 undefined 则表示该变量尚未被赋值;