首先要知道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对象