Undefined类型
- Undefined类型仅有一个值,即undefined;
- 当var声明的变量但未进行初始化时,对应的变量值即为undefined。同时,对未声明的变量执行typeof操作符时也会返回undefined值。
Null类型
- Null类型仅有一个值即null,null表示一个空对象指针。
- typeof操作符检查null值会返回object,因为本身就是指向一个对象。 一般用于初始化一些用于保存对象的变量。
- undefined值派生自null,即 null == undefined。
Boolean类型
- 仅有两个字面值:true 和 false,与数字值不是一回事,true不一定等于1,false不一定等于0
- ECMAScript中所有类型的值都有和这两个Boolean等价的值,可使用Boolean()函数对任意值进行转型,转换为boolean类型。
var message = "Hello world";
var messageToBoolean = Boolean(message);
- 各类型转换关系


Number类型
- 0开头 八进制(严格模式下无效), 0x开头 十六进制
- e 科学记数法,如var num = 3.125e7; // 等价于31250000,默认情况下ECMAScript会将小数点后带6个零以上的浮点数转换为用e表示。
- 浮点数最高精度为17位小数,但不要测试特定的浮点数值,如
if (a + b == 0.3){ // 当a和b位为0.1和0.2时,a+b=0.30000000000000004
alert("you got 0.3!");
}
- Number.MIN_VALUE 最小值 5e-324,如果负数超出JavaScript这个最小值,则会被转换为-Infinity(负无穷),Number.MAX_VALUE 最小值 1.79769311348623157E+308,如果正数超出JavaScript这个最大值,则会被转换为Infinity(正无穷);
可用使用isFinite()函数检测数值是否为无穷值。 - NaN(Not a Number),特殊数值,本来要返回数值的操作数但是未返回数值的情况,例如除零就会返回NaN。
NaN和任何数值都不相等,包括本身。
判断数值是否为NaN必须使用isNaN()函数(函数尝试将传入参数转换为数值)。 - Number(),parseInt(),parseFloat()函数都可用于数值转换,转换规则为



String类型
由0个或多个16位Unicode字符组成的字符串。
- 字符串字面量

- 字符串一旦创建就不能修改,改变某个变量保存的字符串,实质是销毁原字符串,然后用一个包含新值的字符串填充该变量。
- 利用toString()方法将一个值转换为字符串,注意此时null和undefined没有toString方法


Object类型
一组数据和功能的集合。创建对象的方法为:
var o = new Object();
Object的每个实例都具有如下属性和方法:

参考
《JavaScript 高级程序设计》 第三版