您的位置:首页 > Web前端 > JavaScript

JavaScript中的typeof和instanceof

2016-03-20 19:40 751 查看
在网上看了很多篇文章是讲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函数的实例。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息