JavaScript数据类型分为两种:值类型和引用数据类型
值类型(基本类型):字符串(String)、数字(Number)、布尔(Boolean)、对空(Null)、未定义(Undefined)、Symbol。
补充:Undefined 这个值表示变量不含有值。可以通过将变量的值设置为 null 来清空变量。
补充2:str,number和true都有包装类型,所以可以把数字用括号括起来调用toString()方法
引用数据类型:对象(Object)、数组(Array)、函数(Function)。
类型检测
最常见的就是typeof:
<script language="JavaScript">
var a="德玛西亚";
alert(typeof a);
</script>
注意: 比较特殊的是typeof null返回“object”!!!因此此方法不适用于判空
原型链操作instanceof
左操作数为对象,不是就返回false,右操作数必须是函数对象或者函数构造器,不是就返回typeError异常。
原理:判断左边的左操作数的对象的原型链上是否有右边这个构造函数的prototype属性。
instanceof坑:不同window或iframe之间的对象类型检测不能使用instanceof!
举个例子;
<script language="JavaScript">
function x() {
}
var xFunctionTest = new x();
alert(xFunctionTest instanceof x);
</script>
快速判断一个变量是否为字符串:将该变量加上任意字符串,在与原变量做类型比较(适用大多数情况,上述两种方法不适用的情况也做过说明)