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文件的方法
Jul 21 Javascript
jquery实现倒计时效果
Dec 14 Javascript
Web前端新人笔记之jquery入门心得(新手必看)
May 17 Javascript
Javascript中的数组常用方法解析
Jun 17 Javascript
遍历json 对象的属性并且动态添加属性的实现
Dec 02 Javascript
详解创建自定义的Angular Schematics
Jun 06 Javascript
解决select2在bootstrap modal中不能正常使用的问题
Aug 09 Javascript
基于 jQuery 实现键盘事件监听控件
Apr 04 jQuery
细说Vue组件的服务器端渲染的过程
May 30 Javascript
JavaScript this在函数中的指向及实例详解
Oct 14 Javascript
深入理解webpack process.env.NODE_ENV配置
Feb 23 Javascript
简单了解常用的JavaScript 库
Jul 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
《DOTA3》开发工作已经开始 《DOTA3》将代替《DOTA2》
2021/03/06 DOTA
smarty实例教程
2006/11/19 PHP
PHP中删除变量时unset()和null的区别分析
2011/01/27 PHP
mac下使用brew配置环境的步骤分享
2011/05/23 PHP
laravel 5 实现模板主题功能
2015/03/02 PHP
PHP数组相关函数汇总
2015/03/24 PHP
PHP常用字符串函数小结(推荐)
2018/08/05 PHP
ExtJs扩展之GroupPropertyGrid代码
2010/03/05 Javascript
基于jQuery的投票系统显示结果插件
2011/08/12 Javascript
JavaScript异步编程Promise模式的6个特性
2014/04/03 Javascript
浅析JavaScript基本类型与引用类型
2014/05/28 Javascript
jQuery拖动布局其结果保存到数据库
2015/10/09 Javascript
js实现手机拍照上传功能
2017/01/17 Javascript
jquery滚动条插件slimScroll使用方法
2017/02/09 Javascript
Vue.js对象转换实例
2017/06/07 Javascript
原生JS实现的雪花飘落动画效果
2018/05/03 Javascript
vue 注册组件的使用详解
2018/05/05 Javascript
详解如何在webpack中做预渲染降低首屏空白时间
2018/08/22 Javascript
layui表格 列自动适应大小失效的解决方法
2019/09/06 Javascript
vue 使用插槽分发内容操作示例【单个插槽、具名插槽、作用域插槽】
2020/03/06 Javascript
彻底搞懂并解决vue-cli4中图片显示的问题实现
2020/08/31 Javascript
使用PYTHON接收多播数据的代码
2012/03/01 Python
python中判断文件编码的chardet(实例讲解)
2017/12/21 Python
如何实现删除numpy.array中的行或列
2018/05/08 Python
python 筛选数据集中列中value长度大于20的数据集方法
2018/06/14 Python
详解Python下ftp上传文件linux服务器
2018/06/21 Python
[原创]Python入门教程1. 基本运算【四则运算、变量、math模块等】
2018/10/28 Python
Python 多线程不加锁分块读取文件的方法
2018/12/11 Python
对matplotlib改变colorbar位置和方向的方法详解
2018/12/13 Python
python+pyqt5编写md5生成器
2019/03/18 Python
python3使用matplotlib绘制散点图
2019/03/19 Python
获取CSDN文章内容并转换为markdown文本的python
2020/09/06 Python
详解CSS3弹性伸缩盒
2020/09/21 HTML / CSS
高中校园广播稿3篇
2014/09/29 职场文书
继续教育心得体会(共6篇)
2016/01/19 职场文书
Python+tkinter实现高清图片保存
2022/03/13 Python