关于javascript中的typeof和instanceof介绍


Posted in Javascript onDecember 04, 2012

typeof用来检测给定变量的数据类型(也可叫做基本类型,基本数据类型。包含undefined、boolean、string、number、object、function)
var message = "so easy";
alert(typeof message); //"string"
alert(typeof 12); //"number"

可以这样记忆:typeof是用来判断不是用new创建的“变量”。

instanceof用来检测对象的类型(也可叫做引用类型。包含Object、Array、Date、RegExp、Function、基本包装类型(含Boolean、Number、String))
var numberObject = new Number(10);
var numberValue = 10;
alert(typeof numberObject); //"object"
alert(typeof numberValue); //"number"
alert(numberObject instanceof Number); //true
alert(numberValue instanceof Number); //false
numberValue是number基础数据类型,不属于任何引用类型。
numberObject是object基础数据类型,属于Number引用类型(所有引用类型都从Object引用类型继承而来)。

可以这样记忆:instanceof检测的都是用new创建的“对象”。而没有通过new创建出来的“变量”不属于任何一个引用类型。用typeof检测用new创建的“对象”始终返回的是“object引用类型”.

isPrototypeOf()方法用来检测原型和实例的关系。instanceof同样也可以检测。只要是原型链中出现过的原型,都可以说是该原型链所派生的实例的原型。
var person = new Person(); //Person继承与Object
alert(Person.prototype.isPrototypeOf(person)); //true
alert(Object.prototype.isPrototypeOf(person)); //true

 

Javascript 相关文章推荐
弹出广告特效代码(一个IP只弹出一次)
May 11 Javascript
javascript tips提示框组件实现代码
Nov 19 Javascript
FF火狐下获取一个元素同类型的相邻元素实现代码
Dec 15 Javascript
教你如何使用node.js制作代理服务器
Nov 26 Javascript
使用ajax+jqtransform实现动态加载select
Dec 01 Javascript
在JavaScript中操作时间之getUTCDate()方法的使用
Jun 10 Javascript
JavaScript禁止复制与粘贴的实现代码
May 16 Javascript
Bootstrap编写一个在当前网页弹出可关闭的对话框 非弹窗
Jun 30 Javascript
JS中用try catch对代码运行的性能影响分析
Dec 26 Javascript
bootstrap table实现单击单元格可编辑功能
Mar 28 Javascript
JS中DOM元素的attribute与property属性示例详解
Sep 04 Javascript
详解在IDEA中将Echarts引入web两种方式(使用js文件和maven的依赖导入)
Jul 11 Javascript
无缝滚动改进版支持上下左右滚动(封装成函数)
Dec 04 #Javascript
js动画(animate)简单引擎代码示例
Dec 04 #Javascript
JavaScript中“+”的陷阱深刻理解
Dec 04 #Javascript
将光标定位于输入框最右侧实现代码
Dec 04 #Javascript
JavaScript中__proto__与prototype的关系深入理解
Dec 04 #Javascript
js 限制数字 js限制输入实现代码
Dec 04 #Javascript
JSON语法五大要素图文介绍
Dec 04 #Javascript
You might like
Yii使用技巧大汇总
2015/12/29 PHP
如果文字过长,则将过长的部分变成省略号显示
2006/06/26 Javascript
疯掉了,尽然有js写的操作系统
2007/04/23 Javascript
ECMAScript 基础知识
2007/06/29 Javascript
jquery将一个表单序列化为一个对象的方法
2014/01/03 Javascript
通过JS动态创建一个html DOM元素并显示
2014/10/15 Javascript
javascript异步编程代码书写规范Promise学习笔记
2015/02/11 Javascript
jQuery动态添加可拖动元素完整实例(附demo源码下载)
2016/06/21 Javascript
又一款js时钟!transform实现时钟效果
2016/08/15 Javascript
jQuery插件开发发送短信倒计时功能代码
2017/05/09 jQuery
Webpack 服务器端代码打包的示例代码
2017/09/19 Javascript
详解react-native WebView 返回处理(非回调方法可解决)
2018/02/27 Javascript
仿ElementUI实现一个Form表单的实现代码
2019/04/23 Javascript
nodejs中实现用户注册路由功能
2019/05/20 NodeJs
基于JavaScript实现单例模式
2019/10/30 Javascript
jQuery实现全选按钮
2021/01/01 jQuery
用Python制作简单的朴素基数估计器的教程
2015/04/01 Python
Python统计python文件中代码,注释及空白对应的行数示例【测试可用】
2018/07/25 Python
Ubuntu下Anaconda和Pycharm配置方法详解
2019/06/14 Python
python多线程http压力测试脚本
2019/06/25 Python
python实现串口自动触发工作的示例
2019/07/02 Python
使用 python pyautogui实现鼠标键盘控制功能
2019/08/04 Python
解决python彩色螺旋线绘制引发的问题
2019/11/23 Python
解决django 向mysql中写入中文字符出错的问题
2020/05/18 Python
完美解决python针对hdfs上传和下载的问题
2020/06/05 Python
python如何调用java类
2020/07/05 Python
python 使用cycle构造无限循环迭代器
2020/12/02 Python
以下的初始化有什么区别
2013/12/16 面试题
国贸专业大学生职业生涯规划范文
2014/01/10 职场文书
公司办公室岗位职责
2014/03/19 职场文书
团日活动总结报告
2014/06/25 职场文书
党课心得体会范文
2014/09/09 职场文书
2014年预备党员群众路线教育实践活动对照检查材料思想汇报
2014/10/02 职场文书
学习保证书100字
2015/02/26 职场文书
2015年物业管理员工工作总结
2015/10/15 职场文书
面试中canvas绘制图片模糊图片问题处理
2022/03/13 Javascript