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自定义属性(类型/属性值)
May 21 Javascript
jquery实现图片翻页效果
Dec 23 Javascript
JavaScript结合AJAX_stream实现流式显示
Jan 08 Javascript
js实现遮罩层弹出框的方法
Jan 15 Javascript
jQuery实现ToolTip元素定位显示功能示例
Nov 23 Javascript
微信小程序开发教程-手势解锁实例
Jan 06 Javascript
node.js(express)中使用Jcrop进行图片剪切上传功能
Apr 21 Javascript
jQuery简单绑定单个事件的方法示例
Jun 10 jQuery
代码详解Vuejs响应式原理
Dec 20 Javascript
详解SPA中前端路由基本原理与实现方式
Sep 12 Javascript
详解Vue的常用指令v-if, v-for, v-show,v-else, v-bind, v-on
Oct 12 Javascript
Vue + Element UI图片上传控件使用详解
Aug 20 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
全国FM电台频率大全 - 18 湖南省
2020/03/11 无线电
php中使用DOM类读取XML文件的实现代码
2011/12/14 PHP
Zend Framework教程之模型Model基本规则和使用方法
2016/03/04 PHP
PHP面向对象自动加载机制原理与用法分析
2016/10/14 PHP
jQuery实现form表单reset按钮重置清空表单功能
2012/12/18 Javascript
window.open关于浏览器拦截问题分析及解决方法
2013/02/05 Javascript
js中的hasOwnProperty和isPrototypeOf方法使用实例
2014/06/06 Javascript
详谈javascript异步编程
2016/02/21 Javascript
JS打印组合功能
2016/08/04 Javascript
jQuery代码实现实时获取时间
2017/01/29 Javascript
Thinkphp5微信小程序获取用户信息接口的实例详解
2017/09/26 Javascript
vue2使用keep-alive缓存多层列表页的方法
2018/09/21 Javascript
关于AOP在JS中的实现与应用详解
2019/05/06 Javascript
vue模块移动组件的实现示例
2020/05/20 Javascript
浅谈Vuex的this.$store.commit和在Vue项目中引用公共方法
2020/07/24 Javascript
Vue自动构建发布脚本的方法示例
2020/07/24 Javascript
Ant design vue table 单击行选中 勾选checkbox教程
2020/10/24 Javascript
使用Python下的XSLT API进行web开发的简单教程
2015/04/15 Python
Python获取系统默认字符编码的方法
2015/06/04 Python
如何优雅地改进Django中的模板碎片缓存详解
2018/07/04 Python
pandas的唯一值、值计数以及成员资格的示例
2018/07/25 Python
pandas的连接函数concat()函数的具体使用方法
2019/07/09 Python
python之PyQt按钮右键菜单功能的实现代码
2019/08/17 Python
python GUI库图形界面开发之PyQt5结合Qt Designer创建信号与槽的详细方法与实例
2020/03/08 Python
python用TensorFlow做图像识别的实现
2020/04/21 Python
Python3爬虫关于识别点触点选验证码的实例讲解
2020/07/30 Python
法国面料和小百货在线商店:Mondial Tissus
2019/03/23 全球购物
程序集与命名空间有什么不同
2014/07/25 面试题
英语国培研修感言
2014/02/13 职场文书
迎七一演讲稿
2014/09/12 职场文书
个人反四风对照检查材料思想汇报
2014/09/23 职场文书
2014年教务工作总结
2014/12/03 职场文书
怎样写观后感
2015/06/19 职场文书
写好Python代码的几条重要技巧
2021/05/21 Python
MySQL中出现乱码问题的终极解决宝典
2021/05/26 MySQL
Python爬取奶茶店数据分析哪家最好喝以及性价比
2022/09/23 Python