关于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 相关文章推荐
JQuery 入门实例1
Jun 25 Javascript
JQuery使用$.ajax和checkbox实现下次不在通知功能
Apr 16 Javascript
jQuery右侧选项卡焦点图片轮播特效代码分享
Sep 05 Javascript
jQuery中ajax的load()与post()方法实例详解
Jan 05 Javascript
Angularjs手动解析表达式($parse)
Oct 12 Javascript
jQuery中checkbox反复调用attr('checked', true/false)只有第一次生效的解决方法
Nov 16 Javascript
Javascript自定义事件详解
Jan 13 Javascript
jQuery自定义图片上传插件实例代码
Apr 04 jQuery
json对象及数组键值的深度大小写转换问题详解
Mar 30 Javascript
vue基于element-ui的三级CheckBox复选框功能的实现代码
Oct 15 Javascript
如何使用RoughViz可视化Vue.js中的草绘图表
Jan 30 Vue.js
详解TypeScript中的类型保护
Apr 29 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
PHP常用正则表达式集锦
2014/08/17 PHP
PHP编写RESTful接口的方法
2016/02/21 PHP
JSON 入门指南 想了解json的朋友可以看下
2009/08/26 Javascript
使用apply方法处理数组的三个技巧[译]
2012/09/20 Javascript
js获取当前月的第一天和最后一天的小例子
2013/11/18 Javascript
node.js不得不说的12点内容
2014/07/14 Javascript
关闭页面window.location事件未执行的原因及解决方法
2014/09/01 Javascript
基于jQuey实现鼠标滑过变色(整行变色)
2015/12/07 Javascript
20分钟打造属于你的Bootstrap站点
2016/07/27 Javascript
纯前端JavaScript实现Excel IO案例分享
2016/08/26 Javascript
jQuery中animate的几种用法与注意事项
2016/12/12 Javascript
javascript解析ajax返回的xml和json格式数据实例详解
2017/01/05 Javascript
JavaScript 函数的定义-调用、注意事项
2017/04/16 Javascript
基于vue.js的分页插件详解
2017/11/27 Javascript
JS实现前端页面的搜索功能
2018/06/12 Javascript
angular 未登录状态拦截路由跳转的方法
2018/10/09 Javascript
小程序指纹验证的实现代码
2018/12/04 Javascript
vue进入页面时滚动条始终在底部代码实例
2019/03/26 Javascript
详解关于webpack多入口热加载很慢的原因
2019/04/24 Javascript
[01:02:00]DOTA2-DPC中国联赛 正赛 Elephant vs IG BO3 第三场 1月24日
2021/03/11 DOTA
python开发之thread实现布朗运动的方法
2015/11/11 Python
Windows下的Python 3.6.1的下载与安装图文详解(适合32位和64位)
2018/02/21 Python
pandas如何处理缺失值
2019/07/31 Python
纯CSS3编写的的精美动画进度条(无flash/无图像/无脚本/附源码)
2013/01/07 HTML / CSS
HTML5 微格式和相关的属性名称
2010/02/10 HTML / CSS
HTML5获取当前地理位置并在百度地图上展示的实例
2020/07/10 HTML / CSS
省级青年文明号申报材料
2014/05/23 职场文书
应聘教师自荐书
2014/06/16 职场文书
学校党员对照检查材料
2014/08/28 职场文书
工商局副局长个人对照检查材料
2014/09/25 职场文书
二年级上册数学教学计划
2015/01/20 职场文书
纪律委员竞选稿
2015/11/19 职场文书
你真的了解redis为什么要提供pipeline功能
2021/06/22 Redis
Python编写nmap扫描工具
2021/07/21 Python
Redis监控工具RedisInsight安装与使用
2022/03/21 Redis
spring IOC容器的Bean管理XML自动装配过程
2022/05/30 Java/Android