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 相关文章推荐
如何实现JS函数的重载
Sep 22 Javascript
js获取页面传来参数的方法
Sep 06 Javascript
jquery实现图片随机排列的方法
May 04 Javascript
javascript实现的淘宝旅行通用日历组件用法实例
Aug 03 Javascript
每天一篇javascript学习小结(Array数组)
Nov 11 Javascript
vue双向绑定的简单实现
Dec 22 Javascript
巧用canvas
Jan 21 Javascript
json数据格式常见操作示例
Jun 13 Javascript
微信小程序如何获取群聊的openGid以及名称详解
Jul 17 Javascript
jQuery 查找元素操作实例小结
Oct 02 jQuery
node.js中module模块的功能理解与用法实例分析
Feb 14 Javascript
vue实现验证用户名是否可用
Jan 20 Vue.js
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
基于文本的搜索
2006/10/09 PHP
PHP HTML代码串 截取实现代码
2009/06/29 PHP
php实现可以设置中奖概率的抽奖程序代码分享
2014/01/19 PHP
详解Grunt插件之LiveReload实现页面自动刷新(两种方案)
2015/07/31 PHP
CI(CodeIgniter)框架中URL特殊字符处理与SQL注入隐患分析
2019/02/28 PHP
JavaScript 函数replace深入了解
2013/03/14 Javascript
JQuery 文本框回车跳到下一个文本框示例代码
2013/08/30 Javascript
node.js中的buffer.slice方法使用说明
2014/12/10 Javascript
JavaScript让Textarea支持tab按键的方法
2015/06/26 Javascript
javascript截图 jQuery插件imgAreaSelect使用详解
2016/05/04 Javascript
日期时间范围选择插件:daterangepicker使用总结(必看篇)
2017/09/14 Javascript
一步步教你利用Docker设置Node.js
2018/11/20 Javascript
vue 自定义右键样式的实例代码
2019/11/06 Javascript
vue在线动态切换主题色方案
2020/03/26 Javascript
简单了解JavaScript arguement原理及作用
2020/05/28 Javascript
[01:10:27]DOTA2-DPC中国联赛正赛 SAG vs XG BO3 第二场 3月5日
2021/03/11 DOTA
编写Python小程序来统计测试脚本的关键字
2016/03/12 Python
基于h5py的使用及数据封装代码
2019/12/26 Python
python 写函数在一定条件下需要调用自身时的写法说明
2020/06/01 Python
Pycharm的Available Packages为空的解决方法
2020/09/18 Python
CSS3使用transition实现的鼠标悬停淡入淡出
2015/01/09 HTML / CSS
斯洛伐克时尚服装网上商店:Cellbes
2016/10/20 全球购物
美国林业供应商:Forestry Suppliers
2019/05/01 全球购物
Charles&Keith美国官方网站:新加坡快时尚鞋类和配饰零售商
2019/11/27 全球购物
销售部主管岗位职责
2013/12/18 职场文书
财务信息服务专业自荐书范文
2014/02/08 职场文书
个人近期表现材料
2014/02/11 职场文书
司机检讨书
2014/02/13 职场文书
合作协议书怎么写
2014/04/18 职场文书
团代会宣传工作方案
2014/05/08 职场文书
应届生求职自荐信
2014/07/04 职场文书
2014年小学教学工作总结
2014/11/13 职场文书
教师听课学习心得体会
2016/01/15 职场文书
mysql5.7的安装及Navicate长久免费使用的实现过程
2021/11/17 MySQL
css常用字体属性与背景属性介绍
2022/02/28 HTML / CSS
使用compose函数优化代码提高可读性及扩展性
2022/06/16 Javascript