关于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 解析xml文件
Aug 09 Javascript
js播放wav文件(源码)
Apr 22 Javascript
JS中mouseover和mouseout多次触发问题如何解决
Jun 06 Javascript
JavaScript性能优化总结之加载与执行
Aug 11 Javascript
实现JavaScript高性能的数据存储
Dec 11 Javascript
angular.js指令中的controller、compile与link函数的不同之处
May 10 Javascript
Angular2学习笔记之数据绑定的示例代码
Jan 03 Javascript
基于打包工具Webpack进行项目开发实例
May 29 Javascript
JS实现获取进今年第几天是周几的方法分析
Jun 27 Javascript
vscode中vue-cli项目es-lint的配置方法
Jul 30 Javascript
vue2.0页面前进刷新回退不刷新的实现方法
Jul 31 Javascript
在antd4.0中Form使用initialValue操作
Nov 02 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
967 个函式
2006/10/09 PHP
php 目录遍历、删除 函数的使用介绍
2013/04/28 PHP
mac环境中使用brew安装php5.5.15
2014/08/18 PHP
9段PHP实用功能的代码推荐
2014/10/14 PHP
Yii数据模型中rules类验证器用法分析
2016/07/15 PHP
详细对比php中类继承和接口继承
2018/10/11 PHP
JQuery对表格进行操作的常用技巧总结
2014/04/23 Javascript
node.js开机自启动脚本文件
2014/12/24 Javascript
浅谈jQuery的offset()方法及示例分享
2015/07/17 Javascript
JS实现下拉菜单赋值到文本框的方法
2015/08/18 Javascript
jquery 判断是否支持Placeholder属性的方法
2017/02/07 Javascript
简单实现js菜单栏切换效果
2017/03/04 Javascript
关于Node.js中Buffer的一些你可能不知道的用法
2017/03/28 Javascript
微信小程序图片选择、上传到服务器、预览(PHP)实现实例
2017/05/11 Javascript
详解AngularJS 模块化
2017/06/14 Javascript
如何将 jQuery 从你的 Bootstrap 项目中移除(取而代之使用Vue.js)
2017/07/17 jQuery
vue进行图片的预加载watch用法实例讲解
2018/02/07 Javascript
在Vue中使用highCharts绘制3d饼图的方法
2018/02/08 Javascript
vue加载自定义的js文件方法
2018/03/13 Javascript
基于jQuery实现Ajax验证用户名是否可用实例
2018/03/25 jQuery
JavaScript字符和ASCII实现互相转换
2020/06/03 Javascript
[29:10]Ti4 冒泡赛第二天 NEWBEE vs Titan 3
2014/07/15 DOTA
Python排序搜索基本算法之归并排序实例分析
2017/12/08 Python
python如何压缩新文件到已有ZIP文件
2018/03/14 Python
使用Flask集成bootstrap的方法
2018/07/24 Python
python实现杨氏矩阵查找
2019/03/02 Python
复化梯形求积分实例——用Python进行数值计算
2019/11/20 Python
基于python3的socket聊天编程
2020/02/17 Python
pycharm实现在虚拟环境中引入别人的项目
2020/03/09 Python
Django实现图片上传功能步骤解析
2020/04/22 Python
浅谈keras使用中val_acc和acc值不同步的思考
2020/06/18 Python
使用npy转image图像并保存的实例
2020/07/01 Python
一款基于css3的动画按钮代码教程
2014/11/23 HTML / CSS
科级干部群众路线教育实践活动个人对照检查材料
2014/09/19 职场文书
交通事故被告答辩状
2015/05/22 职场文书
Mysql 文件配置解析介绍
2022/05/06 MySQL