typeof和instanceof检测数据类型

时间:2017-06-13

首先要知道js有5种基本数据类型:数值型 (number)、字符串型(string)、逻辑型(boolean、 特殊数据类型:无定义数据类型 (undefined)、空值(null); 另外还有3种复合数据类型,分别是:函数(function)、对象(object)、数组 (array)。

说到检测数据类型,都加都会想到typeof是一个检测变量或值得操作符,只有一个参数!

看下面这段js代码:


	var a = "phpddt.com";
	var b = true;
	var c = 100;
	var d;
	var e = null;
	var f = new Object();

	alert(typeof(a)); //string
        alert(typeof(b)); //boolean
	alert(typeof(c)); //number
	alert(typeof(d)); //undefined
	alert(typeof(e)); //object
	alert(typeof(f)); //object

从上面js代码运行的结果可以看出,如果变量是个对象或者null,返回的类型都是object。但是有时侯,我们不仅仅要知道某个数据类型是不是对象,更要知道它是什么类型的对象!

OK,就来讲一个js中重要的运算符,instanceof,它的主要作用如下:

1.判断一个对象是否为数组

2.判断某个变量是否为某个对象的实例

看下面这段js代码:


<script type="text/javascript">
function a(){
       this.a="a";
       alert(typeof(arguments)); //Object
       alert(arguments instanceof Object); //true
       alert(arguments instanceof Array); //false
}
var test=new a();
alert(test instanceof a); //true
</script>

从上面的结果可以看出:instaceof去测试会发现arguments不是一个Array对象

 

上一条:创建XMLHttpRequest对象的通用方法 下一条:js总switch语句的高级应用

相关文章

最新文章