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 相关文章推荐
用AJAX返回HTML片段中的JavaScript脚本
Jan 04 Javascript
用jquery实现下拉菜单效果的代码
Jul 25 Javascript
随窗体滑动的小插件sticky源码
Jun 21 Javascript
window.onload追加函数使用示例
Mar 03 Javascript
用js提交表单解决一个页面有多个提交按钮的问题
Sep 01 Javascript
JavaScript每天必学之数组和对象部分
Sep 17 Javascript
ionic2中使用自动生成器的方法
Mar 04 Javascript
jQuery+Cookie实现切换皮肤功能【附源码下载】
Mar 25 jQuery
[原创]jQuery实现合并/追加数组并去除重复项的方法
Apr 11 jQuery
Vue实现类似Spring官网图片滑动效果方法
Mar 01 Javascript
js不常见操作运算符总结
Nov 20 Javascript
利用js实现简单开关灯代码
Nov 23 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
收音机玩机评测 406 篇视频合集
2020/03/11 无线电
GBK的页面输出JSON格式的php函数
2010/02/16 PHP
php使浏览器直接下载pdf文件的方法
2013/11/15 PHP
preg_match_all使用心得分享
2014/01/31 PHP
PHP用FTP类上传文件视频等的简单实现方法
2016/09/23 PHP
PHP实现微信小程序用户授权的工具类示例
2019/03/05 PHP
javascript 一些用法小结
2009/09/11 Javascript
javascript hashtable实现代码
2009/10/13 Javascript
jquery easyui的tabs使用时的问题
2010/03/23 Javascript
jQuery 核心函数以及jQuery对象
2010/03/23 Javascript
一个简单的js渐显(fadeIn)渐隐(fadeOut)类
2010/06/19 Javascript
Angularjs编写KindEditor,UEidtor,jQuery指令
2015/01/28 Javascript
js实现div层缓慢收缩与展开的方法
2015/05/11 Javascript
jQuery实现图片左右滚动特效
2020/04/20 Javascript
JavaScript中子对象访问父对象的方式详解
2016/09/01 Javascript
bootstrap paginator分页前后台用法示例
2017/06/17 Javascript
微信小程序使用toast消息对话框提示用户忘记输入用户名或密码功能【附源码下载】
2017/12/09 Javascript
微信小程序使用wxParse解析html的方法示例
2019/01/17 Javascript
Vue项目总结之webpack常规打包优化方案
2019/06/06 Javascript
微信小程序实现订单倒计时
2020/11/01 Javascript
vue 实现tab切换保持数据状态
2020/07/21 Javascript
[01:11:35]Liquid vs LGD 2018国际邀请赛小组赛BO2 第一场 8.16
2018/08/17 DOTA
详解Python中heapq模块的用法
2016/06/28 Python
Python3爬虫学习入门教程
2018/12/11 Python
Python设计模式之观察者模式原理与用法详解
2019/01/16 Python
python3+selenium实现qq邮箱登陆并发送邮件功能
2019/01/23 Python
python使用多线程编写tcp客户端程序
2019/09/02 Python
python安装gdal的两种方法
2019/10/29 Python
css3 实现元素弧线运动的示例代码
2020/04/24 HTML / CSS
伯克斯奥特莱斯:Burkes Outlet
2019/03/30 全球购物
德国50岁以上交友网站:Lebensfreunde
2020/03/18 全球购物
求职信的正确写法
2014/07/10 职场文书
党的群众路线教育实践活动整改方案
2014/10/28 职场文书
公司年夜饭通知
2015/04/25 职场文书
建国70周年的心得体会(2篇)
2019/09/20 职场文书
MySQL创建高性能索引的全步骤
2021/05/02 MySQL