浅谈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 相关文章推荐
JavaScript ( (__ = !$ + $)[+$] + ({} + $)[_/_] +({} + $)[_/_] )
Feb 25 Javascript
获取服务器传来的数据 用JS去空格的正则表达式
Mar 26 Javascript
js中判断Object、Array、Function等引用类型对象是否相等
Aug 29 Javascript
js控制的回到页面顶端goTop的代码实现
Mar 20 Javascript
javascript时间函数基础介绍
Mar 28 Javascript
顶部缓冲下拉菜单导航特效的JS代码
Aug 27 Javascript
简述JavaScript对传统文档对象模型的支持
Jun 16 Javascript
JS出现失效的情况总结
Jan 20 Javascript
详解组件库的webpack构建速度优化
Jun 18 Javascript
Element-ui中元素滚动时el-option超出元素区域的问题
May 30 Javascript
浅谈Vue中render中的h箭头函数
Nov 07 Javascript
Vue+Node实现的商城用户管理功能示例
Dec 23 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/02/14 PHP
php下统计用户在线时间的一种尝试
2010/08/26 PHP
PHP中=赋值操作符对不同数据类型的不同行为
2011/01/02 PHP
php中日期加减法运算实现代码
2011/12/08 PHP
thinkPHP中钩子的两种配置调用方法详解
2016/11/11 PHP
PHP实现防止表单重复提交功能【基于token验证】
2018/05/24 PHP
PHP封装类似thinkphp连贯操作数据库Db类与简单应用示例
2019/05/08 PHP
firefox中JS读取XML文件
2006/12/21 Javascript
JavaScript学习笔记记录我的旅程
2012/05/23 Javascript
jquery实现点击弹出层效果的简单实例
2014/03/03 Javascript
javascript简单实现图片预加载
2014/12/03 Javascript
基于jQuery实现左右图片轮播(原理通用)
2015/12/24 Javascript
ion content 滚动到底部会遮住一部分视图的快速解决方法
2016/09/06 Javascript
JavaScript中常用的验证reg
2016/10/13 Javascript
基于JS快速实现导航下拉菜单动画效果附源码下载
2016/10/27 Javascript
将angular.js项目整合到.net mvc中的方法详解
2017/06/29 Javascript
通过命令行创建vue项目的方法
2017/07/20 Javascript
Vue-Router2.X多种路由实现方式总结
2018/02/09 Javascript
jQuery实现侧边栏隐藏与显示的方法详解
2018/12/22 jQuery
Vue+ElementUI使用vue-pdf实现预览功能
2019/11/26 Javascript
js和jquery判断数据类型的4种方法总结
2020/08/28 jQuery
pycharm 使用心得(七)一些实用功能介绍
2014/06/06 Python
python使用 HTMLTestRunner.py生成测试报告
2017/10/20 Python
django rest framework 数据的查找、过滤、排序的示例
2018/06/25 Python
Python实现购物评论文本情感分析操作【基于中文文本挖掘库snownlp】
2018/08/07 Python
django 实现将本地图片存入数据库,并能显示在web上的示例
2019/08/07 Python
浅谈Python中的字符串
2020/06/10 Python
css3 给页面加个半圆形导航条主要利用旋转和倾斜样式
2014/02/10 HTML / CSS
澳大利亚领先的孕妇服装品牌:Mamaway
2018/08/14 全球购物
Laravel中Kafka的使用详解
2021/03/24 PHP
机电工程专业应届生求职信
2013/10/03 职场文书
大学生两会学习心得体会
2014/03/10 职场文书
六五普法学习心得体会
2016/01/21 职场文书
2019大学竞选班长发言稿
2019/06/27 职场文书
浅谈Python列表嵌套字典转化的问题
2021/04/07 Python
Java实现注册登录跳转
2022/06/16 Java/Android