码迷,mamicode.com
首页 > 其他好文 > 详细

比较typeof与instanceof

时间:2019-12-20 11:50:25      阅读:81      评论:0      收藏:0      [点我收藏+]

标签:数据类型   局限   模型   bsp   测试   null   布尔   number   测试的   

相同点:

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用于判断一个变量是否属于某个对象的实例。

细节:

1)、instanceof返回布尔值true或者false。

2)、var a = new Array();

       console.log(a instanceof Array)   // true

       console.log(a instanceof Object)   // true

       a是Array的实例,所以a instanceof Array为true。

       但同时Array也是是object 的子类,所以a instanceof Object也为true。

3)、如果window instanceof Object返回false,此时这里的instanceof测试的object是指js语法中的object,不是指dom模型对象。

比较typeof与instanceof

标签:数据类型   局限   模型   bsp   测试   null   布尔   number   测试的   

原文地址:https://www.cnblogs.com/QueenZhang/p/12072017.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!