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中遭遇级联表达式陷阱
Mar 08 Javascript
一个小型js框架myJSFrame附API使用帮助
Jun 28 Javascript
javascript 解析url的search方法
Feb 09 Javascript
基于jquery的内容循环滚动小模块(仿新浪微博未登录首页滚动微博显示)
Mar 28 Javascript
使用js+jquery实现无限极联动
May 23 Javascript
backbone简介_动力节点Java学院整理
Jul 14 Javascript
prototype.js简单实现ajax功能示例
Oct 18 Javascript
vue中使用axios post上传头像/图片并实时显示到页面的方法
Sep 27 Javascript
uni-app之APP和小程序微信授权方法
May 09 Javascript
利用不到200行代码写一款属于你自己的js类库
Jul 08 Javascript
Vue使用vue-recoure + http-proxy-middleware + vuex配合promise实现基本的跨域请求封装
Oct 21 Javascript
javascript实现前端分页功能
Nov 26 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中实现用数组妩媚地生成要执行的sql语句
2015/07/10 PHP
laravel中的错误与日志用法详解
2016/07/26 PHP
Laravel框架使用Redis的方法详解
2018/05/30 PHP
Laravel 6 将新增为指定队列任务设置中间件的功能
2019/08/06 PHP
Laravel框架实现即点即改功能的方法分析
2019/10/31 PHP
可拖动窗口,附带鼠标控制渐变透明,开启关闭功能
2006/06/26 Javascript
映彩衣的js随笔(js图片切换效果)
2011/07/31 Javascript
Web Inspector:关于在 Sublime Text 中调试Js的介绍
2013/04/18 Javascript
JS Jquery 遍历,筛选页面元素 自动完成(实现代码)
2013/07/08 Javascript
js获取当前页面路径示例讲解
2014/01/08 Javascript
防止登录页面出现在frame中js代码
2014/07/22 Javascript
jQuery中DOM树操作之复制元素的方法
2015/01/23 Javascript
jQuery解析XML与传统JavaScript方法的差别实例分析
2015/03/05 Javascript
微信小程序 页面跳转和数据传递实例详解
2017/01/19 Javascript
详解webpack 如何集成第三方js库
2017/06/29 Javascript
JS HTML图片显示Canvas 压缩功能
2017/07/21 Javascript
深入浅析ES6 Class 中的 super 关键字
2017/10/20 Javascript
微信小程序之多文件下载的简单封装示例
2018/01/29 Javascript
微信小程序绘制图片发送朋友圈
2019/07/25 Javascript
js在HTML的三种引用方式详解
2020/08/29 Javascript
vue项目实现多语言切换的思路
2020/09/17 Javascript
Vue+axios封装请求实现前后端分离
2020/10/23 Javascript
[04:26]2014DOTA2西雅图国际邀请赛 总决赛TOPPLAY
2014/07/22 DOTA
Python3访问并下载网页内容的方法
2015/07/28 Python
Python设计实现的计算器功能完整实例
2017/08/18 Python
在python3中pyqt5和mayavi不兼容问题的解决方法
2019/01/08 Python
python中for循环变量作用域及用法详解
2019/11/05 Python
HTML5中微数据概述及在搜索引擎中的使用举例
2013/02/07 HTML / CSS
HTML5对比HTML4的主要改变和改进总结
2016/05/27 HTML / CSS
物业公司的岗位任命书
2014/06/06 职场文书
劳动竞赛口号
2014/06/16 职场文书
霸气队列口号
2014/06/18 职场文书
物业总经理助理岗位职责
2014/06/29 职场文书
村党支部书记四风问题个人对照检查材料思想汇报
2014/10/06 职场文书
加薪通知
2015/04/25 职场文书
Python中的 Set 与 dict
2022/03/13 Python