比较typeof与instanceof

相同点:JavaScript中typeof和instanceof常用来判断一个变量是否为空,或者是什么类型的。

typeof的定义和用法:返回值是一个字符串,用来说明变量的数据类型。

细节:

1)、typeof一般只能返回如下几个结果:

number,boolean,string,function,object,undefined。

2)、typeof来获取一个变量是否存在,如if(typeof a!="undefined"){alert("ok")},而不要去使用if(a)因为如果a不存在(未声明)则会出错。

3)、对于Array,Null等特殊对象使用typeof一律返回object,这正是typeof的局限性。

Instanceof定义和用法:instanceof用于判断一个变量是否属于某个对象的实例。

实例演示:

a instanceof b?alert("true"):alert("false"); //a是b的实例?真:假

var a = new Array();

alert(a instanceof Array); // true

alert(a instanceof Object) // true

如上,会返回true,同时alert(a instanceof Object)也会返回true;这是因为Array是object 的子类。

function test(){};

var a = new test();

alert(a instanceof test) // true

细节:

(1)、如下,得到的结果为‘N’,这里的instanceof测试的object是指js语法中的object,不是指dom模型对象。

if (window instanceof Object){ alert('Y')} else { alert('N');} // 'N'

posted on 2021-04-29 15:25  Lady_zhang  阅读(55)  评论(0编辑  收藏  举报