在javascript中,变量的类型可以分为2个大类:1)原始类型(primitive type) 2) 引用类型(reference type)
它们之间的区别在于:
1)原始类型(primitive type):
数据存储在栈(stack)中,既变量可以直接访问到数据。
2) 引用类型(reference type):
数据存储在堆(heap)中,变量访问到的是一个指针,指针指向存储该对象的内存。
一. 原始类型
JS的原始类型(primitive type)又可以分为5大类:underfined, null, boolean, Number, String
我们可以使用typeof 变量,来输出变量的类型。
1) undefined
当声明一个变量却没有初始化时,该变量默认是undefined.
var aa;
alert( typeof aa);
alert(aa == undefined);
输出:
undefined
true
2) null
Null表示的是不存在的对象,虽然它与undefined不同,但是javascript中,undefined从null派生出来,因此如下判断
alert(null == undefined); 返回的还是true。
3) boolean
2 var bLost = false ;
3 alert( typeof bFound);
4 alert( typeof bLost);
5 alert(bFound);
6 alert(bLost);
输出:
boolean
boolean
true
false
4) number
在javascript中任何数字,包括整数和浮点数都是number类型。
2 var b = 88.88 ;
3 alert( typeof a);
4 alert( typeof b);
5
输出:
number
number
5) string
var s = "test";
alert(typeof s);
alert(s.length);
输出:
string
4
二. 类型转换
1)转换成string
number 和 boolean类型可以通过toString()转换成string型,但是undefined和null类型不能转换,但是undefined和null却可以通过
alert输出。
如果想把任何类型转换成字符串,必须使用 String(变量) 函数。
2) 转换成数字
可以有2个函数分别转换成整数和浮点数。
a) parseInt()
2 alert(parseInt( " 0xA " ));
3 alert(parseInt( " 22.5 " ));
4 alert(parseInt( " 12blue34 " ));
5 alert(parseInt( " blue34 " ));
输出:
1234
10
22
12
NaN (Not a Number,表示不是一个数字)
b) parseFloat()
2 alert(parseFloat( " 0xA " ));
3 alert(parseFloat( " 22.5 " ));
4 alert(parseFloat( " 0908 " ));
5 alert(parseFloat( " blue34 " ));
输出:
1234
0
22。5
908
NaN
3)转换成布尔型
采用Boolean()函数,记住一下几点:
非空字符串,数字,对象,都是true; 空字符串,0,null都是false。
2 alert(Boolean( 0 ));
3 alert(Boolean( null ));
4
5 alert(Boolean( " test " ));
6 alert(Boolean( " 0 " ));
7 alert(Boolean( 100 ));
8 alert(Boolean( new Object()));
输出:
false
false
false
true
true
true
true
三. 引用类型
1) Object类
javascript中的Object类和Java中的java.lang.Object类相似,是所有类的父类。
2)其他一些类
Boolean, Number, String
instanceof 函数可以判断一个对象是不是某一个类的实例。
2 var s2 = " Hi " ;
3 alert(s1 instanceof String);
4 alert(s2 instanceof String);
输出:
true
false
delete运算符
可以删除定义的属性或方法