JS中typeof和instanceof用法区别

时间:2023-03-08 21:18:14

typeof和instanceof都可以用来判断变量

1、typeof用以获取一个变量或者表达式的类型,typeof一般只能返回如下几个结果:

number,boolean,string,function(函数),object(NULL,数组,对象),undefined。如:

alert(typeof (123));//typeof(123)返回"number"
alert(typeof ("123"));//typeof("123")返回"string"

我们可以使用typeof来获取一个变量是否存在,如if(typeof a!="undefined"){},而不要去使用if(a)因为如果a不存在(未声明)则会出错,正因为typeof遇到null,数组,对象时都会返回object类型,所以当我们要判断一个对象是否是数组时或者判断某个变量是否是某个对象的实例则要选择使用另一个关键语法instanceof

2、instanceof用于判断一个变量是否某个对象的实例,如

var a=new Array();

alert(a instanceof Array);会返回true,

同时alert(a instanceof Object)也会返回true;

这是因为Array是object的子类。

再如:

function test(){};

var a=new test();

alert(a instanceof test)会返回true。

参考地址

http://www.cnblogs.com/double405/p/5326311.html