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 子窗口操作父窗口的代码
Sep 21 Javascript
ExtJS 入门
Oct 29 Javascript
初学js 新节点的创建 删除 的步骤
Jul 04 Javascript
JS截取与分割字符串常用技巧总结
Nov 10 Javascript
jQuery hover事件简单实现同时绑定2个方法
Jun 07 Javascript
AngularJS实现select的ng-options功能示例
Jul 12 Javascript
Vuex中mutations与actions的区别详解
Mar 01 Javascript
JavaScript格式化json和xml的方法示例
Jan 22 Javascript
微信小程序实现的自定义分享功能示例
Feb 12 Javascript
解决vue字符串换行问题(绝对管用)
Aug 06 Javascript
JavaScript实现随机点名小程序
Oct 29 Javascript
如何用JavaScript实现一个数组惰性求值库
May 05 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常用的文件操作函数经典收藏
2013/04/02 PHP
解析php安全性问题中的:Null 字符问题
2013/06/21 PHP
php实现mysql数据库连接操作及用户管理
2015/11/08 PHP
PHP常用工具类大全附全部代码下载
2015/12/07 PHP
PHPstorm启用自动换行的方法详解(IDE)
2020/09/17 PHP
什么是JavaScript
2009/08/13 Javascript
return false;和e.preventDefault();的区别
2010/07/11 Javascript
jQuery find和children方法使用
2011/01/31 Javascript
文本框获得焦点和失去焦点的判断代码
2012/03/18 Javascript
JavaScript将数据转换成整数的方法
2014/01/04 Javascript
Javascript 绘制 sin 曲线过程附图
2014/08/21 Javascript
js控制鼠标事件移动及移出效果显示
2014/10/19 Javascript
javascript中Object使用详解
2015/01/26 Javascript
JQuery实现展开关闭层的方法
2015/02/17 Javascript
easyui validatebox验证
2016/04/29 Javascript
微信公众平台开发教程(五)详解自定义菜单
2016/12/02 Javascript
js 博客内容进度插件详解
2017/02/19 Javascript
JavaScript编程设计模式之构造器模式实例分析
2017/10/25 Javascript
NodeJS实现同步的方法
2019/03/02 NodeJs
js中Generator函数的深入讲解
2019/04/07 Javascript
Vue路由之JWT身份认证的实现方法
2019/08/26 Javascript
详解vue路由
2020/08/05 Javascript
[01:11:02]Secret vs Newbee 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/17 DOTA
python切片(获取一个子列表(数组))详解
2019/08/09 Python
pytorch: Parameter 的数据结构实例
2019/12/31 Python
python 密码学示例——理解哈希(Hash)算法
2020/09/21 Python
Python jieba结巴分词原理及用法解析
2020/11/05 Python
美国领先的汽车轮胎和轮毂供应商:TireBuyer
2016/07/21 全球购物
校长就职演讲稿
2014/01/06 职场文书
生日宴会答谢词
2014/01/09 职场文书
《高尔基和他的儿子》教学反思
2014/04/09 职场文书
应届生面试求职信
2014/07/02 职场文书
节水倡议书
2015/01/19 职场文书
前台文员岗位职责
2015/02/04 职场文书
2015年征兵工作总结
2015/07/23 职场文书
《搭石》教学反思
2016/02/18 职场文书