javascript instanceof 与typeof使用说明


Posted in Javascript onJanuary 11, 2010

typeof用以获取一个变量的类型,typeof一般只能返回如下几个结果:number,boolean,string,function,object,undefined。我们可以使用typeof来获取一个变量是否存在,如

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

如果我们希望获取一个对象是否是数组,或判断某个变量是否是某个对象的实例则要选择使用instanceof。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我们要多插入一个问题,就是function的arguments,我们大家也许都认为arguments是一个Array,但如果使用instaceof去测试会发现arguments不是一个Array对象,尽管看起来很像。

JavaScript中instanceof运算符是返回一个 Boolean 值,指出对象是否是特定类的一个实例。
使用方法:
result = object instanceof class
其中result是必选项。任意变量。
object是必选项。任意对象表达式。
class是必选项。任意已定义的对象类。

说明
如果 object 是 class 的一个实例,则 instanceof 运算符返回 true。如果 object 不是指定类的一个实例,或者 object 是 null,则返回 false。

JavaScript中instanceof运算符
下面的例子举例说明了 instanceof 运算符的用法。

function objTest(obj){ 
var i, t, s = ""; // 创建变量。 
t = new Array(); // 创建一个数组。 
t["Date"] = Date; // 填充数组。 
t["Object"] = Object; 
t["Array"] = Array; 
for (i in t) 
{ 
if (obj instanceof t[i]) // 检查 obj 的类。 
{ 
s += "obj is an instance of " + i + "\n"; 
} 
else 
{ 
s += "obj is not an instance of " + i + "\n"; 
} 
} 
return(s); // 返回字符串。 
} var obj = new Date(); 
response.write(objTest(obj));
Javascript 相关文章推荐
javascript入门·动态的时钟,显示完整的一些方法,新年倒计时
Oct 01 Javascript
js的hasownproperty使用示例
Mar 02 Javascript
Eclipse配置Javascript开发环境图文教程
Jan 29 Javascript
使用jquery实现鼠标滑过弹出更多相关信息层附源码下载
Nov 23 Javascript
几句话带你理解JS中的this、闭包、原型链
Sep 26 Javascript
浅谈jquery中next与siblings的区别
Oct 27 Javascript
Three.js中网格对象MESH的属性与方法详解
Sep 27 Javascript
在Vue中获取组件声明时的name属性方法
Sep 12 Javascript
关于node-bindings无法在Electron中使用的解决办法
Dec 18 Javascript
详解js location.href和window.open的几种用法和区别
Dec 02 Javascript
vue离开当前页面触发的函数代码
Sep 01 Javascript
vue Element-ui表格实现树形结构表格
Jun 07 Vue.js
javascript call方法使用说明
Jan 11 #Javascript
jQuery UI-Draggable 参数集合
Jan 10 #Javascript
将CKfinder整合进CKEditor3.0的新方法
Jan 10 #Javascript
js或css文件后面跟参数的原因说明
Jan 09 #Javascript
Javascript的构造函数和constructor属性
Jan 09 #Javascript
jQuery 页面 Mask实现代码
Jan 09 #Javascript
JQuery 遮罩层实现(mask)实现代码
Jan 09 #Javascript
You might like
第九节--绑定
2006/11/16 PHP
PHP中的错误处理、异常处理机制分析
2012/05/07 PHP
解决phpmyadmin中缺少mysqli扩展问题的方法
2013/05/06 PHP
浅析PHP中Session可能会引起并发问题
2015/07/23 PHP
PHP简单实现记录网站访问量功能示例
2018/06/06 PHP
javascript 写类方式之一
2009/07/05 Javascript
IE6,IE7,IE8下使用Javascript记录光标选中范围(已补全)
2011/08/28 Javascript
动态的改变IFrame的高度实现IFrame自动伸展适应高度
2012/12/28 Javascript
JavaScript获取和设置CheckBox状态的简单方法
2013/07/05 Javascript
jsPDF导出pdf示例
2014/05/02 Javascript
javascript中attribute和property的区别详解
2014/06/05 Javascript
jquery简单图片切换显示效果实现方法
2015/01/14 Javascript
JavaScript 2048 游戏实例代码(简单易懂)
2016/03/25 Javascript
JS仿hao123导航页面图片轮播效果
2016/09/01 Javascript
BootStrap 弹出层代码
2017/02/09 Javascript
angularjs实现简单的购物车功能
2017/09/21 Javascript
JS生成随机打乱数组的方法示例
2017/12/23 Javascript
JavaScript中利用Array filter() 方法压缩稀疏数组
2018/02/24 Javascript
vue技术分享之你可能不知道的7个秘密
2018/04/09 Javascript
使用iView Upload 组件实现手动上传图片的示例代码
2018/10/01 Javascript
jQuery点击页面其他部分隐藏下拉菜单功能
2018/11/27 jQuery
如何使用pm2快速将项目部署到远程服务器
2019/03/12 Javascript
[53:38]OG vs LGD 2018国际邀请赛淘汰赛BO3 第三场 8.26
2018/08/30 DOTA
Python实现的简单hangman游戏实例
2015/06/28 Python
Python遍历numpy数组的实例
2018/04/04 Python
Python 元类实例解析
2018/04/04 Python
解决Python print输出不换行没空格的问题
2018/11/14 Python
Python使用QQ邮箱发送邮件报错smtplib.SMTPAuthenticationError
2019/12/20 Python
pytorch 实现模型不同层设置不同的学习率方式
2020/01/06 Python
销售副总经理岗位职责
2013/12/11 职场文书
保卫钓鱼岛口号
2014/06/20 职场文书
四查四看整改措施
2014/09/19 职场文书
授权委托书协议书
2014/10/16 职场文书
八年级作文之友情
2019/11/25 职场文书
pandas中DataFrame重置索引的几种方法
2021/05/24 Python
Python可视化神器pyecharts绘制地理图表
2022/07/07 Python