typeof与instanceof区别

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了typeof与instanceof区别相关的知识,希望对你有一定的参考价值。

参考技术A 用于判断数据类型,返回值为6个字符串,分别为 string 、 Boolean 、 number 、 function 、 object 、 undefined 。

但是你可能会发现, typeof 在判断 null 、 array 、 object 以及函数实例 (new + 函数) 时,得到的都是 object 。这使得在判断这些数据类型的时候,得不到真是的数据类型。由此引出 instanceof 。

instance中文翻译为实例,因此instanceof的含义就不言而喻,判断该对象是谁的实例,同时我们也就知道instanceof是对象运算符。
这里的实例就牵扯到了对象的继承,它的判断就是根据原型链进行搜寻,在对象obj1的原型链上如果存在另一个对象obj2的原型属性,那么表达式(obj1 instanceof obj2)返回值为true;否则返回false。

想必到这里大家也都明白两者的含义和用法,总之,typeof和instanceof都是用来判断变量类型的,两者的区别在于:

typeof 与 instanceof 区别

typeof

typeof 是一元运算符,返回值是字符串,且只能是number,string,boolean,object,function,undefined

typeof用来判断一个值是否存在

if(typeof(a)!==‘undefined‘){
    alert(‘yes‘)
}

typeof(window)      //object

如果用if(a)判断,就会因为a未定义而报错

对于ArrayNull,typeof一律返回object

instanceof

instanceof是双元运算符,用来判断一个变量是否是某个对象的实例

var arr = new Array();

console.log(arr instanceof Array);  //true

以上是关于typeof与instanceof区别的主要内容,如果未能解决你的问题,请参考以下文章

js中instanceof与typeof的区别以及instanceof的门道

typeof 与 instanceof 区别

JS中typeof与instanceof的区别

JS中typeof与instanceof的区别

JS中typeof与instanceof的区别

javascript中typeof与instanceof的区别