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 联动的无限级封装类,数据采用非Ajax方式,随意添加联动
Jun 29 Javascript
Dom 学习总结以及实例的使用介绍
Apr 24 Javascript
一个简单的弹性返回顶部JS代码实现介绍
Jun 09 Javascript
jQuery Ajax使用实例
Apr 16 Javascript
JavaScript实现网站访问次数统计代码
Aug 12 Javascript
结合代码图文讲解JavaScript中的作用域与作用域链
Jul 05 Javascript
巧用Vue.js+Vuex制作专门收藏微信公众号的app
Nov 03 Javascript
Bootstrap CSS组件之导航条(navbar)
Dec 17 Javascript
JS数组求和的常用方法总结【5种方法】
Jan 14 Javascript
vue-cli3单页构建大型项目方案
Apr 07 Javascript
vue elementui tree 任意级别拖拽功能代码
Aug 31 Javascript
el-form 多层级表单的实现示例
Sep 10 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
用PHP产生动态的影像图
2006/10/09 PHP
php小偷相关截取函数备忘
2010/11/28 PHP
关于PHP的相似度计算函数:levenshtein的使用介绍
2013/04/15 PHP
CURL状态码列表(详细)
2013/06/27 PHP
PHP使用feof()函数读文件的方法
2014/11/07 PHP
css图片自适应大小
2007/11/28 Javascript
在IE,Firefox,Safari,Chrome,Opera浏览器上调试javascript
2008/12/02 Javascript
JavaScript 密码强度判断代码
2009/09/05 Javascript
从零开始学习jQuery (三) 管理jQuery包装集
2011/02/23 Javascript
使用Post提交时须将空格转换成加号的解释
2013/01/14 Javascript
jquery 选取方法都有哪些
2014/05/18 Javascript
jquery动态加载js/css文件方法(自写小函数)
2014/10/11 Javascript
Json解析的方法小结
2016/06/22 Javascript
angularJs关于指令的一些冷门属性详解
2016/10/24 Javascript
利用Angularjs中模块ui-route管理状态的方法
2016/12/27 Javascript
node.js调用Chrome浏览器打开链接地址的方法
2017/05/17 Javascript
vue 内置过滤器的使用总结(附加自定义过滤器)
2018/12/11 Javascript
使用apifm-wxapi快速开发小程序过程详解
2019/08/05 Javascript
layui实现根据table数据判断按钮显示情况的方法
2019/09/26 Javascript
bootstrap table实现iview固定列的效果实例代码详解
2019/09/30 Javascript
Js on及addEventListener原理用法区别解析
2020/07/11 Javascript
Python实现的数据结构与算法之链表详解
2015/04/22 Python
python人民币小写转大写辅助工具
2018/06/20 Python
python使用ctypes调用扩展模块的实例方法
2020/01/28 Python
Python tcp传输代码实例解析
2020/03/18 Python
Python实现电视里的5毛特效实例代码详解
2020/05/15 Python
Android Q之气泡弹窗的实现示例
2020/06/23 Python
Python高阶函数与装饰器函数的深入讲解
2020/11/10 Python
5 分钟读懂Python 中的 Hook 钩子函数
2020/12/09 Python
H5 canvas中width、height和style的宽高区别详解
2018/11/02 HTML / CSS
会计学个人自荐信模板
2013/12/13 职场文书
大学生创业项目方案
2014/03/08 职场文书
党员身份证明材料
2015/06/19 职场文书
详解Java实现数据结构之并查集
2021/06/23 Java/Android
一文搞懂MySQL索引页结构
2022/02/28 MySQL
MySQL中LAG()函数和LEAD()函数的使用
2022/08/14 MySQL