关于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 textarea光标定位方法(兼容IE和FF)
Mar 12 Javascript
js delete 用法(删除对象属性及变量)
Aug 24 Javascript
介绍JavaScript中Math.abs()方法的使用
Jun 14 Javascript
JS实现很实用的对联广告代码(可自适应高度)
Sep 18 Javascript
javascript下拉列表菜单的实现方法
Nov 18 Javascript
javascript中不易分清的slice,splice和split三个函数
Mar 29 Javascript
jQuery购物网页经典制作案例
Aug 19 Javascript
详解js的事件处理函数和动态创建html标记方法
Dec 16 Javascript
react-router v4如何使用history控制路由跳转详解
Jan 09 Javascript
node puppeteer(headless chrome)实现网站登录
May 09 Javascript
vue生命周期的探索
Apr 03 Javascript
小程序开发踩坑:页面窗口定位(相对于浏览器定位)(推荐)
Apr 25 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 全文搜索和替换的实现代码
2008/07/29 PHP
PHP5各个版本的新功能和新特性总结
2014/03/16 PHP
php判断访问IP的方法
2015/06/19 PHP
Laravel中日期时间处理包Carbon的简单使用
2017/09/21 PHP
用Javascript同时提交多个Web表单的方法
2009/12/26 Javascript
js动态添加删除,后台取数据(示例代码)
2013/11/25 Javascript
浏览器窗口大小变化时使用resize事件对框架不起作用的解决方法
2014/05/11 Javascript
手机号码,密码正则验证
2014/09/04 Javascript
JQuery页面地址处理插件jqURL详解
2015/05/03 Javascript
jQuery判断一个元素是否可见的方法
2015/06/05 Javascript
详解js中构造流程图的核心技术JsPlumb(2)
2015/12/08 Javascript
温习Javascript基础语法之词法结构
2016/05/31 Javascript
Web纯前端“旭日图”实现元素周期表
2017/03/10 Javascript
jQuery滚动插件scrollable.js用法分析
2017/05/25 jQuery
node.js的Express服务器基本使用教程
2019/01/09 Javascript
js实现弹出框的拖拽效果实例代码详解
2019/04/16 Javascript
解决ie11 SCRIPT5011:不能执行已释放Script的代码问题
2019/05/05 Javascript
微信小程序canvas动态时钟
2020/10/22 Javascript
[36:33]Ti4 循环赛第四日 附加赛NEWBEE vs Mouz
2014/07/13 DOTA
操作Windows注册表的简单的Python程序制作教程
2015/04/07 Python
Python函数返回值实例分析
2015/06/08 Python
Python实现连接两个无规则列表后删除重复元素并升序排序的方法
2018/02/05 Python
Python使用zip合并相邻列表项的方法示例
2018/03/17 Python
使用 Visual Studio Code(VSCode)搭建简单的Python+Django开发环境的方法步骤
2018/12/17 Python
python3实现钉钉消息推送的方法示例
2019/03/14 Python
python批量处理文件或文件夹
2020/07/28 Python
pandas和spark dataframe互相转换实例详解
2020/02/18 Python
Python类和实例的属性机制原理详解
2020/03/21 Python
Pytorch实现将模型的所有参数的梯度清0
2020/06/24 Python
师范生实习自我鉴定
2013/11/01 职场文书
中年人生感言
2014/02/04 职场文书
2015年教师节贺卡寄语
2015/03/24 职场文书
2015年班干部工作总结
2015/04/29 职场文书
检讨书怎么写?
2019/06/21 职场文书
大学生党员暑假实践(活动总结)
2019/08/21 职场文书
Golang二维数组的使用方式
2021/05/28 Golang