javascrip有五种简单数据类型:Undefined、Null、Boolean、Number、String,还有一种复杂数据类型:Object
1、Undefined
Undefined类型只有一个值,其值为undefined,不是字符串,没有引号
var message ; alert(message == undefined);//返回true alert(message == "undefined");//返回fasle
未声明的变量和已声明但未初始化的变量调用typeof均返回"undefined"字符串
var message ; alert(typeof message);//返回"undefined" alert(typeof text);//返回"undefined"
2、Null
Null类型只有一个值,其值为null,表示一个空对象指针,调用typeof返回"object"
var message = null; alert(typeof message);//返回"object"
undefined值派生自null,它们的相等性测试返回true
alert(null == undefined);//返回true
无论在什么情况下都不应该把变量显式的设置为undefined,而该规则对null不适用,只要在保存对象的变量中还没有真正保存对象,就应该明确的让变量保存null值
3、Boolean
Boolean类型只有两个值:true和false
String类型中的空字符串""、Number努力类型中的0和NaN、Object类型中的null以及Undefined中的undefined对应false,其它值均对应true
4、Number
Number表示整数和浮点数,超过数值范围的数会被转换成特殊的Infinity,正数转化为Infinity,负数转化为-Infinity,整数除以0返回Infinity,负数除以0返回-Infinity
NaN即非数值,0除以0均会返回NaN,并且NaN与任何值都不相等,包括NaN本身
alert(NaN == NaN);//返回false
5、String
String类型表示字符串,一旦创建,他们的值就不能改变,若要改变某个变量中保存的字符串,首先要销毁原来的字符串,再用另一个包含新值的字符串填充该变量
var lang = "java"; lang = lang + "script";
这个操作的过程为:创建一个能容纳十个字符串的新字符串,然后在这个字符串中填充"java"和"script",最后一步是销毁原来的"java"和"script",这也是在很多旧版本浏览器中使用字符串拼接速度很慢的原因
6、Object
Object类型其实就是一组数据和功能的集合