你晓不晓得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的局限性。

4)、使用typeof操作符检测函数时,该操作符会返回"function"。在Safari 5及

之前版本和 Chrome 7 及之前版本中使用 typeof 检测正则表达式时,由于规范的原

因,这个操作符也返回"function"。ECMA-262 规定任何在内部实现[[Call]]方法

的对象都应该在应用 typeof 操作符时返回"function"。由于上述浏览器中的正则

表达式也实现了这个方法,因此对正则表达式应用 typeof 会返回"function"。在IE 和 Firefox 中,对正则表达式应用 typeof 会返回"object"。

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模型对象。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值