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 点击整页变灰的效果(可做退出效果)。
Jan 09 Javascript
javascript 页面划词搜索JS
Sep 28 Javascript
实例讲解JavaScript的Backbone.js框架中的View视图
May 05 Javascript
js中作用域的实例解析
Mar 16 Javascript
js案例之鼠标跟随jquery版(实例讲解)
Jul 21 jQuery
利用node.js爬取指定排名网站的JS引用库详解
Jul 25 Javascript
JavaScript代码执行的先后顺序问题
Oct 29 Javascript
简单实现jquery隔行变色
Nov 09 jQuery
vue一个页面实现音乐播放器的示例
Feb 06 Javascript
浅析Vue 生命周期
Jun 21 Javascript
浅谈对于“不用setInterval,用setTimeout”的理解
Aug 28 Javascript
JavaScript实现英语单词题库
Dec 24 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+Mysql+Ajax+JS实现省市区三级联动
2014/05/23 PHP
php tpl模板引擎定义与使用示例
2019/08/09 PHP
php-fpm超时时间设置request_terminate_timeout资源问题分析
2019/09/27 PHP
Javascript Math ceil()、floor()、round()三个函数的区别
2010/03/09 Javascript
js 禁止选择功能实现代码(兼容IE/Firefox)
2010/04/23 Javascript
Jquery 表格合并的问题分享
2011/09/17 Javascript
jQuery中验证表单提交方式及序列化表单内容的实现
2014/01/06 Javascript
JavaScript bold方法入门实例(把指定文字显示为粗体)
2014/10/17 Javascript
基于javascript bootstrap实现生日日期联动选择
2016/04/07 Javascript
JavaScript制作颜色反转小游戏
2016/09/25 Javascript
浅析JavaScript中break、continue和return的区别
2016/11/30 Javascript
微信公众平台开发教程(五)详解自定义菜单
2016/12/02 Javascript
JS瀑布流实现方法实例分析
2016/12/19 Javascript
基于jQuery实现简单人工智能聊天室
2017/02/10 Javascript
使用jQuery操作DOM的方法小结
2017/02/27 Javascript
bootstrap table 多选框分页保留示例代码
2017/03/08 Javascript
js 客户端打印html 并且去掉页眉、页脚的实例
2017/11/03 Javascript
基于vue-element组件实现音乐播放器功能
2018/05/06 Javascript
小程序开发中如何使用async-await并封装公共异步请求的方法
2019/01/20 Javascript
微信小程序如何获取用户头像和昵称
2019/09/23 Javascript
js实现抽奖的两种方法
2020/03/19 Javascript
详解微信小程序动画Animation执行过程
2020/09/23 Javascript
vue内置组件keep-alive事件动态缓存实例
2020/10/30 Javascript
使用Node.js和Socket.IO扩展Django的实时处理功能
2015/04/20 Python
python密码错误三次锁定(实例讲解)
2017/11/14 Python
Tensorflow卷积神经网络实例
2018/05/24 Python
基于Python pip用国内镜像下载的方法
2018/06/12 Python
浅谈python requests 的put, post 请求参数的问题
2019/01/02 Python
python实现tail -f 功能
2020/01/17 Python
python多进程下的生产者和消费者模型
2020/05/07 Python
联想美国官方商城:Lenovo美国
2017/06/19 全球购物
ONLY瑞典官网:世界知名服装品牌
2018/06/19 全球购物
日本著名化妆品零售网站:Cosme Land
2019/03/01 全球购物
C面试题
2015/10/08 面试题
会计大学生职业生涯规划书范文
2014/01/13 职场文书
你的创业计划书怎样才能打动风投
2014/02/06 职场文书