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 相关文章推荐
JS检测图片大小的实例
Aug 21 Javascript
jQuery针对各类元素操作基础教程
Aug 29 Javascript
纯JavaScript实现的分页插件实例
Jul 14 Javascript
轮播图组件js代码
Aug 08 Javascript
详解vue渲染从后台获取的json数据
Jul 06 Javascript
JavaScript+CSS相册特效实例代码
Sep 07 Javascript
Vue 2.0入门基础知识之内部指令详解
Oct 15 Javascript
详解React之父子组件传递和其它一些要点
Jun 25 Javascript
如何使用 vue + d3 画一棵树
Dec 03 Javascript
js实现贪吃蛇小游戏
Oct 29 Javascript
Echarts实现多条折线可拖拽效果
Dec 19 Javascript
vue集成openlayers加载geojson并实现点击弹窗教程
Sep 24 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
杏林同学录(三)
2006/10/09 PHP
解析Ubuntu下crontab命令的用法
2013/06/24 PHP
php实现的统计字数函数定义与使用示例
2017/07/26 PHP
PHP多进程通信-消息队列使用
2019/03/08 PHP
PHP call_user_func和call_user_func_array函数的简单理解与应用分析
2019/11/25 PHP
php ActiveMQ的安装与使用方法图文教程
2020/02/23 PHP
JQuery的Ajax跨域请求原理概述及实例
2013/04/26 Javascript
快速解决jQuery与其他库冲突的方法介绍
2014/01/02 Javascript
JavaScript弹出新窗口后向父窗口输出内容的方法
2015/04/06 Javascript
深入学习JavaScript的AngularJS框架中指令的使用方法
2016/03/05 Javascript
js创建对象几种方式的优缺点对比
2016/09/28 Javascript
原生js代码实现图片放大境效果
2016/10/30 Javascript
javascript实现多张图片左右无缝滚动效果
2017/03/22 Javascript
微信小程序 地图map实例详解
2017/06/07 Javascript
Bootstrap Tooltip显示换行和左对齐的解决方案
2017/10/11 Javascript
VUE饿了么树形控件添加增删改功能的示例代码
2017/10/17 Javascript
vue首次赋值不触发watch的解决方法
2018/09/11 Javascript
微信小程序实现带缩略图轮播效果
2018/11/04 Javascript
vue语法自动转typescript(解放双手)
2019/09/18 Javascript
JavaScript实现公告栏上下滚动效果
2020/03/13 Javascript
vue从零实现一个消息通知组件的方法详解
2020/03/16 Javascript
图解JS原型和原型链实现原理
2020/09/15 Javascript
使用Python的内建模块collections的教程
2015/04/28 Python
Python中datetime常用时间处理方法
2015/06/15 Python
Python设计模式之代理模式简单示例
2018/01/09 Python
Python OpenCV实现鼠标画框效果
2020/08/19 Python
基于Tensorflow一维卷积用法详解
2020/05/22 Python
如何利用python之wxpy模块玩转微信
2020/08/17 Python
jupyter notebook 写代码自动补全的实现
2020/11/02 Python
浅谈three.js中的needsUpdate的应用
2012/11/12 HTML / CSS
Canvas实现放大镜效果完整案例分析(附代码)
2020/11/26 HTML / CSS
天猫精选:上天猫,就够了
2016/09/21 全球购物
美国校服网上商店:French Toast
2019/10/08 全球购物
企业门卫岗位职责
2013/12/12 职场文书
会计求职自荐信范文
2015/03/04 职场文书
机修车间主任岗位职责
2015/04/08 职场文书