关于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 相关文章推荐
javascript 设计模式之单体模式 面向对象学习基础
Apr 18 Javascript
网页前台通过js非法字符过滤代码(骂人的话等等)
May 26 Javascript
jQuery1.6 使用方法二
Nov 23 Javascript
JavaScript实现班级随机点名小应用需求的具体分析
May 12 Javascript
js实现发送验证码后的倒计时功能
May 28 Javascript
浅析jQuery Mobile的初始化事件
Dec 03 Javascript
JS控制HTML元素的显示和隐藏的两种方法
Sep 27 Javascript
浅谈js for循环输出i为同一值的问题
Mar 01 Javascript
Angular 2.x学习教程之结构指令详解
May 25 Javascript
jQuery读取本地的json文件(实例讲解)
Oct 31 jQuery
详解使用VUE搭建后台管理系统(vue-cli更新至3.0)
Aug 22 Javascript
vue实现鼠标经过动画
Oct 16 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 无法加载mysql的module的时候的配置的解决方案引发的思考
2012/01/27 PHP
Erlang的运算符(比较运算符,数值运算符,移位运算符,逻辑运算符)
2012/07/23 PHP
php递归删除指定文件夹的方法小结
2015/04/20 PHP
使用Javascript和DOM Interfaces来处理HTML
2006/10/09 Javascript
javascript web对话框与弹出窗口
2009/02/22 Javascript
一步一步制作jquery插件Tabs实现过程
2010/07/06 Javascript
基于jsTree的无限级树JSON数据的转换代码
2010/07/27 Javascript
在JavaScript中获取请求的URL参数[正则]
2010/12/25 Javascript
12种不宜使用的Javascript语法整理
2013/11/04 Javascript
JS获取Table中td值的方法
2015/03/19 Javascript
jquery中$each()方法的使用指南
2015/04/30 Javascript
jQuery实现带水平滑杆的焦点图动画插件
2016/03/08 Javascript
js判断手机浏览器操作系统和微信浏览器的方法
2016/04/30 Javascript
Vue2.0如何发布项目实战
2017/07/27 Javascript
jQuery实现可兼容IE6的滚动监听功能
2017/09/20 jQuery
Vue中自定义全局组件的实现方法
2017/12/08 Javascript
jQuery控制input只能输入数字和两位小数的方法
2019/05/16 jQuery
原生JavaScript写出Tabs标签页的实例代码
2020/07/20 Javascript
vue-cli+webpack项目打包到服务器后,ttf字体找不到的解决操作
2020/08/28 Javascript
浅谈Python的异常处理
2016/06/19 Python
python 读文件,然后转化为矩阵的实例
2018/04/23 Python
python原类、类的创建过程与方法详解
2019/07/19 Python
Python列表去重复项的N种方法(实例代码)
2020/05/12 Python
python从ftp获取文件并下载到本地
2020/12/05 Python
CSS伪类与CSS伪元素的区别及由来具体说明
2012/12/07 HTML / CSS
在线吉他课程,学习如何弹吉他:Fender Play
2019/02/28 全球购物
Etam德国:内衣精品店
2019/08/25 全球购物
Java面试笔试题大全
2016/11/23 面试题
女方回门宴答谢词
2014/01/14 职场文书
局火灾防控工作方案
2014/05/25 职场文书
2015年宣传部工作总结范文
2015/03/31 职场文书
灵魂歌王观后感
2015/06/17 职场文书
鲁滨逊漂流记读书笔记
2015/06/26 职场文书
mysql备份策略的实现(全量备份+增量备份)
2021/07/07 MySQL
MySQL导致索引失效的几种情况
2022/06/25 MySQL
教你nginx跳转配置的四种方式
2022/07/07 Servers