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 (用setTimeout而非setInterval)
Dec 28 Javascript
caller和callee的区别介绍及演示结果
Mar 10 Javascript
MultiSelect左右选择控件的设计与实现介绍
Jun 08 Javascript
jQuery淡入淡出元素让其效果更为生动
Sep 01 Javascript
BootstrapTable与KnockoutJS相结合实现增删改查功能【二】
May 10 Javascript
jQuery实现导航回弹效果
Feb 27 Javascript
关于webpack2和模块打包的新手指南(小结)
Aug 07 Javascript
node.js使用免费的阿里云ip查询获取ip所在地【推荐】
Sep 03 Javascript
Vue传参一箩筐(页面、组件)
Apr 04 Javascript
微信小程序调用天气接口并且渲染在页面过程详解
Jun 24 Javascript
Vue Element UI + OSS实现上传文件功能
Jul 31 Javascript
JavaScript中交换值的10种方法总结
Aug 18 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
如何开始收听短波广播
2021/03/01 无线电
PHP通过get方法获得form表单数据方法总结
2018/09/12 PHP
php 中self,this的区别和操作方法实例分析
2019/11/04 PHP
PHP日期和时间函数的使用示例详解
2020/08/06 PHP
javascript 解析url的search方法
2010/02/09 Javascript
十个优秀的Ajax/Javascript实例网站收集
2010/03/31 Javascript
JavaScript高级程序设计(第3版)学习笔记 概述
2012/10/11 Javascript
JavaScript String.replace函数参数实例说明
2013/06/06 Javascript
Javascript中的getUTCHours()方法使用详解
2015/06/10 Javascript
基于javascript实现浏览器滚动条快到底部时自动加载数据
2015/11/30 Javascript
jQuery焦点图轮播插件KinSlideshow用法分析
2016/06/08 Javascript
Bootstrap Table的使用总结
2016/10/08 Javascript
JS 全屏和退出全屏详解及实例代码
2016/11/07 Javascript
JavaScript输出所选择起始与结束日期的方法
2017/07/12 Javascript
JS添加或删除HTML dom元素的方法实例分析
2019/03/05 Javascript
jQuery实现轮播图效果demo
2020/01/11 jQuery
[03:59]DOTA2英雄梦之声_第07期_水晶室女
2014/06/23 DOTA
[48:48]完美世界DOTA2联赛PWL S3 Magama vs GXR 第一场 12.19
2020/12/24 DOTA
Python实现从脚本里运行scrapy的方法
2015/04/07 Python
Python随手笔记第一篇(2)之初识列表和元组
2016/01/23 Python
Python实现获取邮箱内容并解析的方法示例
2018/06/16 Python
Python框架Flask的基本数据库操作方法分析
2018/07/13 Python
python文件排序的方法总结
2020/09/13 Python
浅谈盘点5种基于Python生成的个性化语音方法
2021/02/05 Python
解决pytorch下出现multi-target not supported at的一种可能原因
2021/02/06 Python
一款纯css3实现的动画加载导航
2014/10/08 HTML / CSS
html5在移动端的屏幕适应问题示例探讨
2014/06/15 HTML / CSS
经济学人订阅:The Economist
2018/07/19 全球购物
向国旗敬礼活动小结
2014/09/27 职场文书
会议接待欢迎标语
2014/10/08 职场文书
2014年小学辅导员工作总结
2014/12/23 职场文书
2015年信息中心工作总结
2015/05/25 职场文书
初中团委工作总结
2015/08/13 职场文书
python实现大文本文件分割成多个小文件
2021/04/20 Python
Android开发实现极为简单的QQ登录页面
2022/04/24 Java/Android
JS前端轻量fabric.js系列之画布初始化
2022/08/05 Javascript