1. JavaScript有5种常用的数据类型: 字符串值(String), 数字(Number), 布尔值(Boolean), 数组(Array), 对象(Object)。
2. JavaScript有还有2种特殊的数据类型: 空(Null)、未定义(Undefined)。
3. JavaScript字符串
3.1. JavaScript字符串是引号中的零个或多个Unicode字符。
3.2. 字符串可以使用单引号或双引号:
var x = 'hello world';
var y = "hello world";
3.3. Java则是用双引号声明字符串, 用单引号声明字符。但是由于JavaScript没有字符类型, 所以可使用这两种表示法中的任何一种。
4. JavaScript数字
4.1. JavaScript只有一种数字类型(Number)。数字可以带小数点, 也可以不带。带小数点是浮点数, 不带小数点是整数。
4.2. 数字的取值范围: 5e-324 ~ 1.7976931348623157e+308 。
4.3. 特殊的数字类型: NaN(not a number)、Infinity(正无穷大)、-Infinity(负无穷大)。
4.4. 实例
var a = 100;
var b = 1.11;
var c = NaN;
var d = Infinity;
var e = -Infinity;
5. JavaScript布尔值
5.1. JavaScript布尔值只有两个值: true或false。
5.2. 实例
var x = true;
var y = false;
6. JavaScript数组
6.1. JavaScript数组用于在单一变量中存储多个值。
6.2. 创建数组最简单的方式是使用中括号[]包含项, 多个项用逗号分割。
6.3. 实例
var x = [];
var y = [0, true, 'hello world'];
6.4. 我们通过引用索引号(下标号)来引用某个数组元素。
6.5. 数组索引从0开始。[0]是数组中的第一个元素, [1]是第二个, 依此类推。
7. JavaScript对象
7.1. 创建对象最简单的方式是使用花括号{}包含项。
7.2. 在花括号内部是对象的属性, 属性以名称和值对的形式(name: value)来定义, 名称和值以冒号分割。
7.3. 在花括号内部的多个属性以逗号分割。
7.4. 实例
var x = {};
var y = {id: 100, name: 'zs', isMan: false};
8. Undefined类型
8.1. Undefined类型只有一个值, 即undefined。
8.2. undefined字面意思是未定义, 但是它却表示没有值的变量。即当声明的变量未初始化时, 该变量的默认值是undefined。
8.3. 下面这段代码, 第一行声明变量x, 没有初始值, 该变量将被赋予值undefined。第二行代码显示"true", 说明这两个值确实相等。
var x;
window.alert(x == undefined); //输出true
8.4. 值undefined并不同于未声明的变量。但是, typeof运算符并不真正区分这两种值。考虑下面的代码:
var x;
window.alert(typeof x); //输出undefined
window.alert(typeof y); //输出undefined
8.5. 上面的代码对两个变量输出的都是"undefined", 即使变量y从未被声明过。如果对y使用除typeof之外的其他运算符的话, 会引起错误, 因为其他运算符只能用于已声明的变量上。例如, 下面的代码将引发错误:
var x;
window.alert(y == undefined);
8.6. 当函数无明确返回值时, 返回的也是值"undefined", 如下所示:
function myFunc() { }
window.alert(myFunc() == undefined); // 输出true
9. Null类型
9.1. Null类型也只有一个值, 即null。
9.2. null表示尚未存在的对象。
9.3. 其实undefined是从值null派生来的, 因此JavaScript把它们定义为相等的:
window.alert(null == undefined); // 输出true
9.4. 尽管这两个值相等, 但它们的含义不同。undefined是声明了变量但未对其初始化时赋予该变量的值, null则用于表示尚未存在的对象。
9.5. 如果函数或方法要返回的是对象, 那么找不到该对象时, 返回的通常是null。
9.6. 可以通过将变量的值设置为null来清空对象。
9.7. 在JavaScript中, null的数据类型是对象。
10. 例子
10.1. 代码
<!DOCTYPE html>
<html>
<head>
<title>数据类型</title>
<meta charset="utf-8" />
</head>
<body>
<script type="text/javascript">
var a, b = undefined;
var c = null;
var d = 'hello world';
var e = 1, f = 3.14, g = NaN, h = Infinity, i = -Infinity;
var j = true, k = false;
var l = [100, true, 'zhangsan'];
var m = {id: 1001, name: 'zs', isMan: true};
document.write('a = ' + a + ', b = ' + b + '<br />');
document.write('c = ' + c + '<br />');
document.write('(b == c) = ' + (b == c) + '<br />');
document.write('d = ' + d +'<br />');
document.write('e = ' + e + ', f = ' + f + ', g = ' + g + ', h = ' + h + ', i = ' + i + '<br />');
document.write('j = ' + j + ', k = ' + k + '<br />');
document.write('l =' + l + '<br />');
document.write('m =' + m + '<br />');
m = null;
document.write('m =' + m + '<br />');
</script>
</body>
</html>
10.2. 效果图
11. typeof运算符
11.1. 您可使用typeof运算符来确定JavaScript变量或表达式的类型。
11.2. typeof运算符把对象、数组或null返回object。
11.3. typeof运算符把函数返回function。
11.4. 例子
11.4.1. 代码
<!DOCTYPE html>
<html>
<head>
<title>typeof运算符</title>
<meta charset="utf-8" />
</head>
<body>
<script type="text/javascript">
var a, b = undefined;
var c = null;
var d = 'hello world';
var e = 1, f = 3.14, g = NaN, h = Infinity, i = -Infinity;
var j = true, k = false;
var l = [100, true, 'zhangsan'];
var m = {id: 1001, name: 'zs', isMan: true};
document.write('a =' + a + ', a的数据类型是: ' + typeof a + '<br />');
document.write('b =' + b + ', b的数据类型是: ' + typeof b + '<br />');
document.write('c =' + c + ', c的数据类型是: ' + typeof c + '<br />');
document.write('d =' + d + ', d的数据类型是: ' + typeof d + '<br />');
document.write('e =' + e + ', e的数据类型是: ' + typeof e + '<br />');
document.write('f =' + f + ', f的数据类型是: ' + typeof f + '<br />');
document.write('g =' + g + ', g的数据类型是: ' + typeof g + '<br />');
document.write('h =' + h + '。 h的数据类型是: ' + typeof h + '<br />');
document.write('i =' + i + ', i的数据类型是: ' + typeof i + '<br />');
document.write('j =' + j + ', j的数据类型是: ' + typeof j + '<br />');
document.write('k =' + k + ', k的数据类型是: ' + typeof k + '<br />');
document.write('l =' + l + '。 l的数据类型是: ' + typeof l + '<br />');
document.write('m =' + m + ', m的数据类型是: ' + typeof m + '<br />');
function myFunction(){}
document.write('myFunction =' + myFunction + ', myFunction的数据类型是: ' + typeof myFunction + '<br />');
document.write('(' + f + ' + ' + e + ')表达式的数据类型是: ' + typeof (f + e));
</script>
</body>
</html>
11.4.2. 效果图
12. JavaScript字面量
12.1. 字符串、数字包括NaN和Infinity和-Infinity、布尔、Null、Undefined都是字面量(没有使用new关键字创建对象的值)。
12.2. 字面量跟常量的意思差不多。
12.3. 实例
''
'你好'
0
3.14
NaN
Infinity
-Infinity
true
false
null
Undefined
13. JavaScript值
13.1. JavaScript有两种类型的值: 字面量值和变量值。
13.2. 实例
var x = 1;
var y = x + 3.14; // 算数运算, 使用了x这个变量值