1.Undefined
Undefined是全局对象window的一个特殊属性,顾名思义就是未定义的意思;Undefined类型只有一个值undefined,表示一个变量定义了但未赋值;
如:var a; alert(a); // 弹出undefined;
下面是几种常见的会出现undefined的情况:
(1)获取一个对象的属性(原本属性和protoType扩展的属性)不存在时,返回undefined;
(2)当一个函数function(){}没有明确的返回值时,显示undefined,例子:function way(){} alert(way());//弹出undefined;
(3)javascript中的参数有多个形参的话,如果调用参数的话,参数数量小于形参数量,那么其他的参数值就为undefined;
2、Null类型
null是javascript保留的关键字,Null类型也只有一个null值,表示为空或者不存在的对象引用;
(1)javascript中的if()判断语句无论是null类型还是undefined类型他们的返回值都是false,也就是说一个变量若是null 或者undefined那么他就为false;
3、Number类型
表示数值,数字类型能代表的范围是:-(2^63-1)~~2^63-1。除了具体的数值,还有一些带符号的值:+Infinity(正无穷),-Infinity(负无穷)和NaN(非数值)
4、Object类型
js中的对象和java中的对象一样。js对象是一个拥有属性和类型的实体。用杯子类比对象,杯子有颜色、重量等属性,js对象也有属性来定义它的特征。
5、String类型
js字符串每一个元素占据了字符串的位置,第一个元素的索引为0,下一个索引是1.字符串的长度是它的元素的数量。字符串用单引号或单引号括起来。js字符串不过更改,即字符串一旦被创建就不能被修改。但是可以基于原字符串来创建新字符串。
6、Boolean类型
布尔类型大家都很熟悉,这里说几个他的特殊用法:(1)boolea类型和Number类型相结合时,true转化为1,false转化为0;
vara =true;
alert(a+1);//弹出2vara =true;
alert(a);//弹出true
上述六种类型也可以相互转化,基本上是数值和字符串和布尔值之间的转化:
(1) Number类型转化为string类型,用tostring();
(2) String类型转化为Number,用Number();
varstr = "123";varnum = 1;
alert(str + num);//弹出1231alert(Number(str)+num)//弹出124
也可以使用全局函数parseInt()和parseFloat()来进行转换;parseInt()和parseFloat()的区别是Number()转换是整个值,而parseInt()和parseFloat()则可以只转换开头的数字部分。
alert(Number("123asdf"));//弹出NaNalert(Number("1.2.3"))//弹出NaNalert(parseInt("123sdf"));//弹出123alert(parseFloat("sdfsdf"));//弹出NaNalert(parseInt("sdf345"))//弹出NaN
Number()在转化的过程中布尔类型的true和false分别被转化为1和0其他的不能转化为数值的全部转化NaN。
alert(Number(true));//弹出1alert(Number(false));//弹出0alert(Number(null));//弹出0
其他的若是不能转化为数值类型的,基本上全转化为NaN;
扩展小知识:(1)判断一个变量是否是数值,用IsNan()方法;
(2)在javascript中==和===的区别: "==" 只要求值相等; "===" 要求值和类型都相等;
(3)instanceof只是用于判断object是否是class类的一个实例,是的话返回true,否则返回false;alert(a instanceof String);