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 相关文章推荐
理解Javascript闭包
Nov 01 Javascript
JavaScript中使用指数方法Math.exp()的简介
Jun 15 Javascript
浅谈javascript中执行环境(作用域)与作用域链
Dec 08 Javascript
vue如何从接口请求数据
Jun 22 Javascript
React Native使用fetch实现图片上传的示例代码
Mar 07 Javascript
在Vue中获取组件声明时的name属性方法
Sep 12 Javascript
ES6中字符串的使用方法扩展
Jun 04 Javascript
JavaScript实现单英文金山打字通
Jul 24 Javascript
原生javascript单例模式的应用实例分析
Feb 23 Javascript
JS造成内存泄漏的几种情况实例分析
Mar 02 Javascript
javascript canvas检测小球碰撞
Apr 17 Javascript
ztree+ajax实现文件树下载功能
May 18 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学习 变量使用总结
2011/03/24 PHP
采用PHP函数memory_get_usage获取PHP内存清耗量的方法
2011/12/06 PHP
PHP编程中的常见漏洞和代码实例
2014/08/06 PHP
PHP扩展开发教程(总结)
2015/11/04 PHP
理解PHP中的Session及对Session有效期的控制
2016/01/08 PHP
使用PHP json_decode可能遇到的坑与解决方法
2017/08/03 PHP
PHP命名空间(namespace)原理与用法详解
2019/12/11 PHP
javascript之典型高阶函数应用介绍二
2013/01/10 Javascript
页面定时刷新(1秒刷新一次)
2013/11/22 Javascript
js中获取时间new Date()的全面介绍
2016/06/20 Javascript
微信小程序 图片边框解决方法
2017/01/16 Javascript
jQuery ajax请求struts action实现异步刷新
2017/04/19 jQuery
JavaScript严格模式下关于this的几种指向详解
2017/07/12 Javascript
微信页面弹出键盘后iframe内容变空白的解决方案
2017/09/20 Javascript
在vue项目中引入highcharts图表的方法(详解)
2018/03/05 Javascript
python爬虫教程之爬取百度贴吧并下载的示例
2014/03/07 Python
Python和Ruby中each循环引用变量问题(一个隐秘BUG?)
2014/06/04 Python
python转换字符串为摩尔斯电码的方法
2015/07/06 Python
python开启摄像头以及深度学习实现目标检测方法
2018/08/03 Python
Python3 导入上级目录中的模块实例
2019/02/16 Python
解决python3.5 正常安装 却不能直接使用Tkinter包的问题
2019/02/22 Python
一篇文章了解Python中常见的序列化操作
2019/06/20 Python
python实现测试工具(二)——简单的ui测试工具
2020/10/19 Python
Python爬虫简单运用爬取代理IP的实现
2020/12/01 Python
HTML5 LocalStorage 本地存储刷新值还在
2017/03/10 HTML / CSS
比较一下entity bean和session bean
2013/12/27 面试题
党员批评与自我批评
2014/02/12 职场文书
党支部承诺书范文
2014/03/28 职场文书
《永远的白衣战士》教学反思
2014/04/25 职场文书
大专学生求职信
2014/07/04 职场文书
商务考察邀请函模板
2015/02/02 职场文书
签订劳动合同通知书
2015/04/16 职场文书
道歉短信大全
2015/05/12 职场文书
2015年街道除四害工作总结
2015/05/15 职场文书
东京审判观后感
2015/06/01 职场文书
2015年秋季运动会前导词
2015/07/20 职场文书