关于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 相关文章推荐
获取offsetTop和offsetLeft值的js代码(兼容)
Apr 16 Javascript
Javascript基础教程之定义和调用函数
Jan 18 Javascript
jQuery实现渐变弹出层和弹出菜单的方法
Feb 20 Javascript
JS实现带圆弧背景渐变效果的导航菜单代码
Oct 13 Javascript
7个去伪存真的JavaScript面试题
Jan 07 Javascript
jQuery中Nicescroll滚动条插件的用法
Nov 10 Javascript
thinkjs 文件上传功能实例代码
Nov 08 Javascript
Vue.directive 自定义指令的问题小结
Mar 04 Javascript
vue计算属性computed、事件、监听器watch的使用讲解
Jan 21 Javascript
详解关于webpack多入口热加载很慢的原因
Apr 24 Javascript
改进 JavaScript 和 Rust 的互操作性并深入认识 wasm-bindgen 组件
Jul 13 Javascript
TypeScript 运行时类型检查补充工具
Sep 28 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的chr和ord函数实现字符加减乘除运算实现代码
2011/12/05 PHP
php htmlspecialchars()与shtmlspecialchars()函数的深入分析
2013/06/05 PHP
php json_encode()函数返回json数据实例代码
2014/10/10 PHP
php使用curl伪造来源ip和refer的方法示例
2018/05/08 PHP
jQuery 插件 将this下的div轮番显示
2009/04/09 Javascript
编写js扩展方法判断一个数组中是否包含某个元素
2013/11/08 Javascript
浅析Node在构建超媒体API中的作用
2014/07/30 Javascript
jQuery中change事件用法实例
2014/12/26 Javascript
TypeScript具有的几个不同特质
2015/04/07 Javascript
谈谈Jquery ajax中success和complete有哪些不同点
2015/11/20 Javascript
textarea 在浏览器中固定大小和禁止拖动的实现方法
2016/12/03 Javascript
Javascript计算二维数组重复值示例代码
2016/12/18 Javascript
JavaScript对象封装的简单实现方法(3种方法)
2017/01/03 Javascript
php输出全部gb2312编码内的汉字方法
2017/03/04 Javascript
浅谈vue项目4rs vue-router上线后history模式遇到的坑
2018/09/27 Javascript
Vue使用mixin分发组件的可复用功能
2019/09/01 Javascript
vue实现文字加密功能
2019/09/27 Javascript
SpringBoot+Vue开发之Login校验规则、实现登录和重置事件
2020/10/19 Javascript
python实现根据ip地址反向查找主机名称的方法
2015/04/29 Python
python获取本机mac地址和ip地址的方法
2015/04/29 Python
python解析xml文件实例分析
2015/05/27 Python
python去除文件中空格、Tab及回车的方法
2016/04/12 Python
Python装饰器原理与用法分析
2018/04/30 Python
matplotlib 输出保存指定尺寸的图片方法
2018/05/24 Python
详解Python的hasattr() getattr() setattr() 函数使用方法
2018/07/09 Python
python实现的登录与提交表单数据功能示例
2019/09/25 Python
python函数不定长参数使用方法解析
2019/12/14 Python
10个python爬虫入门基础代码实例 + 1个简单的python爬虫完整实例
2020/12/16 Python
CSS3使用border-radius属性制作圆角
2014/12/22 HTML / CSS
全球领先美式家具品牌:Ashley爱室丽家居
2017/08/07 全球购物
What is view? why do we have view?
2012/06/22 面试题
视图的作用
2014/12/19 面试题
财务会计大学生自我评价
2014/04/09 职场文书
演讲稿的格式及范文
2014/08/22 职场文书
师德师风自我剖析材料
2014/09/27 职场文书
学校2015年纠风工作总结
2015/05/15 职场文书