浅谈javascript中的instanceof和typeof


Posted in Javascript onFebruary 27, 2015

对于instanceof和typeof,以前偶尔的用到过,特别是typeof用到的相对更多一些,今日研究ext源码,很多地方都用到了instanceof,突然觉得他们两个有些相似但也应该有他们区别,网上看了一些文章,对它们之间的关系有了一定的了解。

instanceof和typeof都能用来判断一个变量是否为空或是什么类型的变量。
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 相关文章推荐
Array栈方法和队列方法的特点说明
Jan 24 Javascript
javascript根据时间生成m位随机数最大13位
Oct 30 Javascript
javascript正则表达式之search()用法实例
Jan 19 Javascript
JavaScript获得url查询参数的方法
Jul 02 Javascript
jQuery实现带渐显效果的人物多级关系图代码
Oct 16 Javascript
jQuery自定义滚动条完整实例
Jan 08 Javascript
jquery网页加载进度条的实现
Jun 01 jQuery
解决Angular4项目部署到服务器上刷新404的问题
Aug 31 Javascript
Vue.js组件高级特性实例详解
Dec 24 Javascript
微信小程序MUI侧滑导航菜单示例(Popup弹出式,左侧滑动,右侧不动)
Jan 23 Javascript
vue学习之Vue-Router用法实例分析
Jan 06 Javascript
用React Native制作一个简单的游戏引擎
May 27 Javascript
js实现有时间限制消失的图片方法
Feb 27 #Javascript
js用拖动滑块来控制图片大小的方法
Feb 27 #Javascript
javascript中局部变量和全局变量的区别详解
Feb 27 #Javascript
对比分析AngularJS中的$http.post与jQuery.post的区别
Feb 27 #Javascript
JavaScript中Function详解
Feb 27 #Javascript
JS实现图片产生波纹一样flash效果的方法
Feb 27 #Javascript
js实现鼠标触发图片抖动效果的方法
Feb 27 #Javascript
You might like
测试您的 PHP 水平的题目
2007/05/30 PHP
PHP添加MySQL数据记录代码
2008/06/07 PHP
安装apache2.2.22配置php5.4(具体操作步骤)
2013/06/26 PHP
Yii中表单用法实例详解
2016/01/05 PHP
datePicker——日期选择控件(with jquery)
2007/02/20 Javascript
Extjs4 Treegrid 使用心得分享(经验篇)
2013/07/01 Javascript
js冒泡、捕获事件及阻止冒泡方法详细总结
2014/05/08 Javascript
JS在可编辑的div中的光标位置插入内容的方法
2014/11/20 Javascript
js的window.showModalDialog及window.open用法实例分析
2015/01/29 Javascript
jquery动态添加删除(tr/td)
2015/02/09 Javascript
javascript设置页面背景色及背景图片的方法
2015/12/29 Javascript
js eval函数使用,js对象和字符串互转实例
2017/03/06 Javascript
JQuery查找子元素find()和遍历集合each的方法总结
2017/03/07 Javascript
weui框架实现上传、预览和删除图片功能代码
2017/08/24 Javascript
bootstrap table实现点击翻页功能 可记录上下页选中的行
2017/09/28 Javascript
详解在Vue中有条件地使用CSS类
2017/09/30 Javascript
parabola.js抛物线与加入购物车效果的示例代码
2017/10/25 Javascript
CKEditor 4.4.1 添加代码高亮显示插件功能教程【使用官方推荐Code Snippet插件】
2019/06/14 Javascript
[18:32]DOTA2 HEROS教学视频教你分分钟做大人-谜团
2014/06/12 DOTA
python检测远程端口是否打开的方法
2015/03/14 Python
Python实现的摇骰子猜大小功能小游戏示例
2017/12/18 Python
pandas全表查询定位某个值所在行列的方法
2018/04/12 Python
Windows下python3.6.4安装教程
2018/07/31 Python
使用Python制作自动推送微信消息提醒的备忘录功能
2018/09/06 Python
Python脚本完成post接口测试的实例
2018/12/17 Python
python2.7使用plotly绘制本地散点图和折线图
2019/04/02 Python
Python中最好用的命令行参数解析工具(argparse)
2019/08/23 Python
PyTorch中topk函数的用法详解
2020/01/02 Python
获取邓白氏信用报告:Dun & Bradstreet
2019/01/22 全球购物
阿拉伯时尚购物网站:Nisnass
2021/02/07 全球购物
开平碉楼导游词
2015/02/06 职场文书
党员违纪检讨书
2015/05/05 职场文书
学校食堂管理制度
2015/08/04 职场文书
2016高一新生军训心得体会
2016/01/11 职场文书
高中地理教学反思
2016/02/19 职场文书
中国古风插画师排行榜:夏达第一,第三是阴阳师姑获鸟皮肤创作者
2022/03/18 国漫