javascript中typeof操作符和constucor属性检测


Posted in Javascript onFebruary 26, 2015

*#type.js

function Person(name, age) {

 this.name = name;

 this.age = age;

}

var d = {an: 'object'};

var a = ['apple', 'banana'];

var f = function() {};

var s = 'David';

var n = 33;

var b = true;

var o = new Object();

var person = new Person('Mark', 22);

console.log(typeof(d) + ': ' + d.constructor);

console.log(typeof(a) + ': ' + a.constructor);

console.log(typeof(f) + ': ' + f.constructor);

console.log(typeof(s) + ': ' + s.constructor);

console.log(typeof(n) + ': ' + n.constructor);

console.log(typeof(b) + ': ' + b.constructor);

console.log(typeof(o) + ': ' + o.constructor);

console.log(typeof(person) + ': ' + person.constructor);

运行$node type.js得

object:   function Object() { [native code] }

object:   function Array() { [native code] }

function: function Function() { [native code] }

string:   function String() { [native code] }

number:   function Number() { [native code] }

boolean:  function Boolean() { [native code] }

object:   function Object() { [native code] }

object:   function Person() { [native code] }

可见, 使用typeof操作符和constucor属性检测对象类型返回值是存在差异的.

如果变量是数组, typeof操作符返回object, constructor属性返回Array;
如果变量是构造函数对象, typeof操作符返回object, constructor属性返回该构造函数
每个变量都有其construcor属性, 这个属性不单单提供了这个是否对象, 还提供了这个对象是什么类型的对象. 总之, constructor属性保存了一个指向对象的构造函数, 无论它是自定义的还是原生类型的对象.

有一点需要注意的是, 不同的浏览器对typeof操作符检测正则表达式会有所不同,IE和Firefox会返回'object'.

好了,今天内容就先到这里了,小伙伴们如有疑问,就在下方留言吧。

Javascript 相关文章推荐
jQuery.Validate 使用笔记(jQuery Validation范例 )
Jun 25 Javascript
初窥JQuery(二) 事件机制(1)
Nov 25 Javascript
jQuery中:last选择器用法实例
Dec 30 Javascript
JavaScript的内存释放问题详解
Jan 21 Javascript
javascript中callee与caller的区别分析
Apr 20 Javascript
JS控制FileUpload的上传文件类型实例代码
Oct 07 Javascript
基于百度地图实现产品销售的单位位置查看功能设计与实现
Oct 21 Javascript
微信公众号-获取用户信息(网页授权获取)实现步骤
Oct 21 Javascript
JavaScript笛卡尔积超简单实现算法示例
Jul 30 Javascript
JS执行控制之节流模式实例分析
Dec 21 Javascript
angular6的table组件开发的实现示例
Dec 26 Javascript
如何在现代JavaScript中编写异步任务
Jan 31 Javascript
JS实现网页滚动条感应鼠标变色的方法
Feb 26 #Javascript
js随机生成网页背景颜色的方法
Feb 26 #Javascript
jQuery简单实现隐藏以及显示特效
Feb 26 #Javascript
最流行的Node.js精简型和全栈型开发框架介绍
Feb 26 #Javascript
jQuery对象初始化的传参方式
Feb 26 #Javascript
JS实现文字链接感应鼠标淡入淡出改变颜色的方法
Feb 26 #Javascript
JS实现很酷的水波文字特效实例
Feb 26 #Javascript
You might like
无数据库的详细域名查询程序PHP版(4)
2006/10/09 PHP
PHP版国家代码、缩写查询函数代码
2011/08/14 PHP
基于python发送邮件的乱码问题的解决办法
2013/04/25 PHP
基于Discuz security.inc.php代码的深入分析
2013/06/03 PHP
关于js与php互相传值的介绍
2013/06/25 PHP
php array_merge函数使用需要注意的一个问题
2015/03/30 PHP
基于PHP实现简单的随机抽奖小程序
2016/01/05 PHP
php无限级分类实现评论及回复功能
2019/02/18 PHP
JS获取父节点方法
2009/08/20 Javascript
jQuery的链式调用浅析
2010/12/03 Javascript
jQuery数据显示插件整合实现代码
2011/10/24 Javascript
关于JAVASCRIPT urldecode URL解码的问题
2012/01/08 Javascript
JS文本框追加多个下拉框的值的简单实例
2013/07/12 Javascript
jquery prop的使用介绍及与attr的区别
2013/12/19 Javascript
jQuery html()方法使用不了无法显示内容的问题
2014/08/06 Javascript
js实现类似于add(1)(2)(3)调用方式的方法
2015/03/04 Javascript
JS+CSS实现TreeMenu二级树形菜单完整实例
2015/09/18 Javascript
基于JavaScript实现简单的随机抽奖小程序
2016/01/05 Javascript
jQuery Easyui使用(二)之可折叠面板动态加载无效果的解决方法
2016/08/17 Javascript
JS实现css hover操作的方法示例
2017/04/07 Javascript
Vue 获取数组键名的方法
2018/06/21 Javascript
React实现全局组件的Toast轻提示效果
2018/09/21 Javascript
vue实现手机号码的校验实例代码(防抖函数的应用场景)
2019/09/05 Javascript
JS实现长图上下滚动效果
2020/03/19 Javascript
解决VantUI popup 弹窗不弹出或无蒙层的问题
2020/11/03 Javascript
Windows8下安装Python的BeautifulSoup
2015/01/22 Python
Python多线程编程(七):使用Condition实现复杂同步
2015/04/05 Python
Django Admin 实现外键过滤的方法
2017/09/29 Python
python实现NB-IoT模块远程控制
2018/06/20 Python
python 根据时间来生成唯一的字符串方法
2019/01/14 Python
简单介绍CSS3中Media Query的使用
2015/07/07 HTML / CSS
PyQt 如何创建自定义QWidget
2021/03/24 Python
电大会计学自我鉴定
2014/02/06 职场文书
民事诉讼代理词
2015/05/25 职场文书
基层工作经历证明
2015/06/19 职场文书
聊聊golang中多个defer的执行顺序
2021/05/08 Golang