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 Select操作大集合
May 26 Javascript
jquery触发a标签跳转事件示例代码
Jul 21 Javascript
css+js实现部分区域高亮可编辑遮罩层
Mar 04 Javascript
js判断横竖屏及禁止浏览器滑动条示例
Apr 29 Javascript
Jquery遍历Json数据的方法
Apr 20 Javascript
JavaScript实现下拉菜单的显示和隐藏
Jan 05 Javascript
jquery插件canvaspercent.js实现百分比圆饼效果
Jul 18 jQuery
Cpage.js给组件绑定事件的实现代码
Aug 31 Javascript
通过vue-router懒加载解决首次加载时资源过多导致的速度缓慢问题
Apr 08 Javascript
浅谈VUE防抖与节流的最佳解决方案(函数式组件)
May 22 Javascript
vue如何自动化打包测试环境和正式环境的dist/test文件
Jun 06 Javascript
vue-cli3项目打包后自动化部署到服务器的方法
Sep 16 Javascript
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
GD输出汉字的函数的分析
2006/10/09 PHP
php实现从ftp服务器上下载文件树到本地电脑的程序
2009/02/10 PHP
php生成SessionID和图片校验码的思路和实现代码
2009/03/10 PHP
php自动加载机制的深入分析
2013/06/08 PHP
PHP中HTML标签过滤技巧
2014/01/07 PHP
Nigma vs Liquid BO3 第二场2.13
2021/03/10 DOTA
JavaScript 继承详解(四)
2009/07/13 Javascript
checkbox全选/取消全选以及checkbox遍历jQuery实现代码
2009/12/02 Javascript
js动态创建表格,删除行列的小例子
2013/07/20 Javascript
JS实现时间格式化的方式汇总
2013/10/16 Javascript
js获取上传文件大小示例代码
2014/04/10 Javascript
基于NodeJS的前后端分离的思考与实践(六)Nginx + Node.js + Java 的软件栈部署实践
2014/09/26 NodeJs
JavaScript知识点总结之如何提高性能
2016/01/15 Javascript
jQueryUI Datepicker组件设置日期高亮
2016/10/13 Javascript
js实现hashtable的赋值、取值、遍历操作实例详解
2016/12/25 Javascript
jQuery表格(Table)基本操作实例分析
2017/03/10 Javascript
JavaScript实现反转字符串的方法详解
2017/04/27 Javascript
JS实现给json数组动态赋值的方法示例
2020/03/19 Javascript
详解VueJS 数据驱动和依赖追踪分析
2017/07/26 Javascript
Angular4学习笔记之根模块与Ng模块
2017/09/09 Javascript
Three.js开发实现3D地图的实践过程总结
2017/11/20 Javascript
实例详解BootStrap的动态模态框及静态模态框
2018/08/13 Javascript
Node使用Nodemailer发送邮件的方法实现
2020/02/24 Javascript
Python创建字典的八种方式
2019/02/27 Python
python 批量解压压缩文件的实例代码
2019/06/27 Python
解决tensorflow由于未初始化变量而导致的错误问题
2020/01/06 Python
python之MSE、MAE、RMSE的使用
2020/02/24 Python
使用Python第三方库pygame写个贪吃蛇小游戏
2020/03/06 Python
Python类绑定方法及非绑定方法实例解析
2020/10/09 Python
Html5调用手机摄像头并实现人脸识别的实现
2018/12/21 HTML / CSS
小学中队活动总结
2015/05/11 职场文书
死亡诗社观后感
2015/06/05 职场文书
JS数组的常用方法整理
2021/03/31 Javascript
MySQL kill不掉线程的原因
2021/05/07 MySQL
PyTorch 如何自动计算梯度
2021/05/23 Python
el-form每行显示两列底部按钮居中效果的实现
2022/08/05 HTML / CSS