ECMAScript 中有 5 种简单数据类型(也称为基本数据类型):
Undefined 、 Null 、 Boolean 、 Number和 String 。
还有 1种复杂数据类型—— Object
- (调用 typeof null会返回 “object”)
Undefined 类型
说明:在使用 var 声明变量但未对其加以初始化时,这个变量的值就是undefined
demo:
var message;
alert(message == undefined); //true
Null 类型
说明: null 值表示一个空对象指针,而这也正是使用 typeof 操作符检测 null 值时会返回 “object” 的原因
demo:
// undefined 值是派生自 null 值的
alert(null == undefined); //true
Boolean 类型
Number 类型
- 浮点数值
对于那些极大或极小的数值,可以用 e 表示法(即科学计数法)表示的浮点数值表示。
浮点数值的最高精度是 17 位小数,但在进行算术计算时其精确度远远不如整数。例如,0.1 加 0.2的结果不是 0.3,而是 0.30000000000000004
if (a + b == 0.3){ // 不要做这样的测试!
alert("You got 0.3.");
}
**永远不要测试某个特定的浮点数值。 **
- 数值范围
可以使用 isFinite() 函数。这个函数在参数位于最小与最大数值之间时会返
回 true ,demo:
var result = Number.MAX_VALUE + Number.MAX_VALUE;
alert(isFinite(result)); //false
- NaN
说明:即非数值(Not a Number)是一个特殊的数值,这个数值用于表示一个本来要返回数值的操作数未返回数值的情况(这样就不会抛出错误了)
isNaN() 在接收到一个值之后,会尝试将这个值转换为数值 - 数值转换
有 3 个函数可以把非数值转换为数值:
Number() 、 parseInt() 和 parseFloat()
String 类型
- 字符字面量
- 字符串的特点
说明:字符串一旦创建,它们的值就不能改变。要改变某个变量保存的字符串,首先要销毁原来的字符串,然后再用另一个包含新值的字符串填充该变量。
首先创建一个能容纳 10 个字符的新字符串,然后在这个字符串中填充 “Java” 和 “Script” ,最后一步是销毁原来的字符串 “Java” 和字符串 “Script” ,因为这两个字符串已经没用了var lang = "Java"; lang = lang + "Script";
- 转换为字符串
- 第一种是使用几乎每个值都有的 toString() 方法,但 null 和 undefined 值没有这个方法.
- 在不知道要转换的值是不是 null 或 undefined 的情况下,还可以使用转型函数 String() ,这个函数能够将任何类型的值转换为字符串