JavaScript中的typeof和instanceof

在网上看了很多篇文章是讲typeof和instanceof的作用以及区别,但是看完都是云里雾里的,最后发现如果对JavaScript原始类型和引用类型理解的非常透彻的话,这两者的作用和区别也就显而易见了。

这是自己总结的对JavaScript原始类型和引用类型的理解:http://blog.csdn.net/fly_zxy/article/details/50936244

typeof

在变量和值上调用typeof,将返回一个字符串,这个字符串标示了这个变量或值的类型。如果这个变量或值是一个引用类型将会返回"object"。如果是原始类型输出结果如下:
console.log(typeof "ABC");
console.log(typeof true);
console.log(typeof 112);
console.log(typeof undefined);
console.log(typeof null);
string
boolean
number
undefined
object
您会问typeof null 返回的object?这是因为JavaScript最初实现的一个错误,然后被沿用到现在。现在,null被认为是对象的占位符,从而解释了这一矛盾。从技术将null还是一个元素类型。比如:var obj 变量是一个对象类型的,我们在程序中会这样给obj初始值:var obj=null;

instanceof

如上所述,typeof在运算一个引用类型时,总是返回object。不能判断这个引用类型是根据那个函数实例化的。这个时候就需要用到instanceof。instanceof判断一个对象是否是另一个函数(或对象)的实例。例如:
var array = new Array();
console.log(array instanceof Array);
 //=>true

var array = new Array();
console.log(array instanceof Object);
//=>true
array是Array函数的一个实例对象,同时也是Object函数的实例。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值