javascript中typeof和instanceof用法的总结

本文解析了JavaScript中typeof和instanceof的区别与用法。typeof用于判断变量的基本类型,如number、string等;instanceof则用于检查变量是否为某个构造函数的实例。文章通过实例演示了如何使用这两种方法。

今天在看相应的javascript书籍时,遇到了typeof和instanceof的问题,一直不太懂,特地查资料总结如下:

JavaScript 中 typeof 和 instanceof 常用来判断是什么类型的。但它们之间还是有区别的:

typeof

typeof 是一个一元运算,放在一个运算数之前,运算数可以是任意类型。

 

它返回值是一个字符串,该字符串说明运算数的类型。typeof 一般只能返回如下几个结果:

 

number,boolean,string,function,object,undefined

先看例子:

var a= 1;
console.log(typeof a); //number

var b= '1'; console.log(typeof b); //string

var c; console.log(typeof c); //undefined

var d= true; console.log(typeof d); //boolean

var e= [1,2,3]; console.log(typeof e); //object

var f= function(){}; console.log(typeof f); //function

【插一句:注意一点,返回值number, string, undefined, function,boolean,object这些都是字符串,类型都是string。】

上面我们看到:

观察输出结果发现,number, string, undefined, function,boolean类型均能通过typeof方法判断,而array类型输出object。

因为typeof方法只能判断基本类型类型有(number, string, undefined,boolean,function【函数】),而当判断NULL,数组,对象这三种的情况时,一般都返回object。

除此之外(包括Date, RegExp,null等都只是object的扩展!),返回的都是object。

我们可以使用typeof来获取一个变量是否存在,如if(typeof a!="undefined"){},而不要去使用if(a)因为如果a不存在(未声明)则会出错, 对于 Array,Null 等特殊对象使用 typeof 一律返回 object,这正是 typeof 的局限性。

正因为typeof遇到null,数组,对象时都会返回object类型,所以当我们要判断一个对象是否是数组时,或者判断某个变量是否是某个对象的实例则要选择使用另一个关键语法instanceof。

instanceof

instance:实例,例子

instanceof用于判断一个变量是否是某个对象的实例,如

var a=new Array();alert(a instanceof Array);  返回true,

同时  alert(a instanceof Object)也会返回true; 这是因为Array是object的子类。

再如:function test(){};var a=new test();alert(a instanceof test)  会返回true。

另外,更重的一点是 instanceof 可以在继承关系中用来判断一个实例是否属于它的父类型。

有关instanceof的详细用法可参考:http://www.studyofnet.com/news/175.html

 

转载于:https://www.cnblogs.com/wangzhenhai/p/6646430.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值