1.undefined类型
undefined类型只有一个特殊的值,即undefined。在使用var声明变量但未对其加以初始化时,这个变量的值就是undefined。这个值是默认的而不需要加以显式的声明。
变量没有声明,其值也是undefined。
2.null类型
null类型也只有一个值,即null。null值表示一个空的对象指针,使用typeof()函数检测null值,返回object。
undefined值可以看作是null派生而来。
alert(undefined==null); //true
尽管null和undefined有这样的关系,但它们的用途完全不同,无论在什么情况下,都没有必要把一个变量值设置为undefined,但是对于一个意在保存还没有真正保存的对象,我们都应该将其赋值为null。
3.boolean类型
就有true和false两种值。
下面是boolean和其它类型之间的转化
数据类型 转化为true 转化为false
boolean true false
string 非空字符串 “”
number 非零数字 0和NaN
object 非空对象 null
undefined N/A undefined
4.number类型
var intNum=55; //十进制整数
var octalNum1=070; //八进制的56
var hexNum1=0xA; //16进制的10
var floatNum1=1.1;//浮点数
var floatNum=3.12e7;//科学表示法
Number.MAX_VALUE 所能表示数字的最大值
Number.MIN_VALue 所能表示数字的最小值
NaN 非数值是一个特殊的数值。这个数值用来表示一个本来要返回数值的操作数未返回数值的情况
1)任何涉及NaN的操作都会返回NaN
2)NaN与任何值都不相等
isFinite()函数用来判断一个数值是不是在最大和最小范围之内。
数值的转化:
有三个函数可以把非数值转化成数值
Number()
1)如果是boolean true和false将分别转化为1和0
2)如果是数字值,只是简单的传入和返回
3)如果是null,返回0
4)如果是undefined,返回NaN
5)如果是字符串,遵循下面的规则
如果字符串只包含数字,则将其转化成10进制数字,前导的0会忽略
如果字符串包含有效的浮点格式,则转化为对应的浮点数,忽略前导0
如果字符串包含有效的16进制格式,如0xf,则将其转化成相同大小的10进制数
如果字符串时空的,将其转化为0
如果字符串包含除上述格式之外的字符,则将其转化为NaN
如果是对象,则调用valueof()方法,然后按照前面的规则转化成返回的值。
如果转化的结果是Nan,则调用对象的toString()方法,然后按照前面的规则转化成字符串
parseInt() parseFloat()
会找到字符串的第一个非空字符,如果第一个字符不是数字字符或者负号,parseInt()返回NaN,如果第一个字符是数字字符,会一直解析到非数字字符为止。
5.string类型
字符串可以由单引号或者双引号表示,这两种表示方法是完全等效的。ECMAScript中字符串一旦创建,它们的值就不能改变,要改变某个变量保存的字符串,首先要销毁原来的字符串,然后再用另外一个包含新值的字符串填充该变量。