关于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中与toggleClass等价的程序段 以及未来学习的方向
Mar 18 Javascript
jquery导航制件jquery鼠标经过变色效果示例
Dec 05 Javascript
js判断浏览器类型为ie6时不执行
Jun 15 Javascript
node.js中的http.response.end方法使用说明
Dec 14 Javascript
浅谈js中的this问题
Aug 31 Javascript
基于Vue的SPA动态修改页面title的方法(推荐)
Jan 02 Javascript
vue2.0实现前端星星评分功能组件实例代码
Feb 12 Javascript
基于Vuejs的搜索匹配功能实现方法
Mar 03 Javascript
VUE重点问题总结
Mar 19 Javascript
JS实现table表格内针对某列内容进行即时搜索筛选功能
May 11 Javascript
nuxt.js中间件实现拦截权限判断的方法
Nov 21 Javascript
Element-ui Layout布局(Row和Col组件)的实现
Dec 06 Vue.js
无缝滚动改进版支持上下左右滚动(封装成函数)
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中用文本文件做数据库的实现方法
2008/03/27 PHP
PHP查询数据库中满足条件的记录条数(两种实现方法)
2013/01/29 PHP
深入mysql_fetch_row()与mysql_fetch_array()的区别详解
2013/06/05 PHP
PHP使用GIFEncoder类处理gif图片实例
2014/07/01 PHP
PHP return语句的另一个作用
2014/07/30 PHP
PHP+swoole实现简单多人在线聊天群发
2016/01/19 PHP
php 指定范围内多个随机数代码实例
2016/07/18 PHP
PHP简单实现二维数组赋值与遍历功能示例
2017/10/19 PHP
PHP开发之用微信远程遥控服务器
2018/01/25 PHP
PHPStorm2020.1永久激活及下载更新至2020(推荐)
2020/09/25 PHP
js禁止document element对象选中文本实现代码
2013/03/21 Javascript
Node.js开发指南中的简单实例(mysql版)
2013/09/17 Javascript
Javascript玩转继承(三)
2014/05/08 Javascript
使用不同的方法结合/合并两个JS数组
2014/09/18 Javascript
jQuery实现鼠标划过添加和删除class的方法
2015/06/26 Javascript
ajax如何实现页面局部跳转与结果返回
2015/08/24 Javascript
Bootstrap模仿起筷首页效果
2016/05/09 Javascript
jQuery使用siblings获取某元素所有同辈(兄弟姐妹)元素用法示例
2017/01/30 Javascript
详解用vue编写弹出框组件
2017/07/04 Javascript
Vue-cli Eslint在vscode里代码自动格式化的方法
2018/02/23 Javascript
Node.js使用Angular简单示例
2018/05/11 Javascript
详解Node.js中path模块的resolve()和join()方法的区别
2018/10/29 Javascript
微信小程序服务器日期格式化问题
2020/01/07 Javascript
解决小程序无法触发SESSION问题
2020/02/03 Javascript
9个JavaScript日常开发小技巧
2020/10/06 Javascript
[03:16]DOTA2完美大师赛主赛事首日集锦
2017/11/23 DOTA
Django验证码的生成与使用示例
2017/05/20 Python
Windows下PyCharm安装图文教程
2018/08/27 Python
Python判断一个list中是否包含另一个list全部元素的方法分析
2018/12/24 Python
浅谈python新式类和旧式类区别
2019/04/26 Python
浅谈keras 模型用于预测时的注意事项
2020/06/27 Python
英格兰橄榄球商店:England Rugby Store
2016/12/17 全球购物
新学期家长寄语2016
2015/12/03 职场文书
毕业季聚会祝酒词!
2019/07/04 职场文书
基于Redis位图实现用户签到功能
2021/05/08 Redis
Oracle使用别名的好处
2022/04/19 Oracle