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 相关文章推荐
一个tab标签切换效果代码
Mar 27 Javascript
JS写的贪吃蛇游戏(个人练习)
Jul 08 Javascript
JS如何判断移动端访问设备并解析对应CSS
Nov 27 Javascript
ExtJS 刷新后如何默认选中刷新前最后一次选中的节点
Apr 03 Javascript
jquery 取子节点及当前节点属性值
Jul 25 Javascript
原生javascript实现的分页插件pagenav
Aug 28 Javascript
使用AngularJS实现表单向导的方法
Jun 19 Javascript
JS定时检测任务任务完成后执行下一步的解决办法
Dec 22 Javascript
JavaScript中运算符规则和隐式类型转换示例详解
Sep 06 Javascript
使用淘宝镜像cnpm安装Vue.js的图文教程
May 17 Javascript
详解vue-cli项目开发/生产环境代理实现跨域请求
Jul 23 Javascript
微信小程序实现动态列表项的顺序加载动画
Jul 25 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
建立动态的WML站点(一)
2006/10/09 PHP
phpinfo() 中 Local Value(局部变量)Master Value(主变量) 的区别
2016/02/03 PHP
CodeIgniter框架基本增删改查操作示例
2017/03/23 PHP
PHP bin2hex()函数基础实例讲解
2019/02/11 PHP
在Laravel中使用MongoDB的方法示例
2019/11/11 PHP
jQuery的deferred对象使用详解
2011/08/20 Javascript
为EasyUI的Tab标签添加右键菜单的方法
2012/07/14 Javascript
javascript获取选中的文本的方法代码
2013/10/30 Javascript
可自定义速度的js图片无缝滚动示例分享
2014/01/20 Javascript
高性能JavaScript DOM编程(1)
2015/08/11 Javascript
JS简单实现禁止访问某个页面的方法
2016/09/13 Javascript
AngularJS实现表单验证功能
2017/01/09 Javascript
实例详解Node.js 函数
2018/06/10 Javascript
layui表格 返回的数据状态异常的解决方法
2019/09/10 Javascript
Vue组件基础用法详解
2020/02/05 Javascript
vue2.0 解决抽取公用js的问题
2020/07/31 Javascript
uniapp实现可滑动选项卡
2020/10/21 Javascript
python标准算法实现数组全排列的方法
2015/03/17 Python
python实现挑选出来100以内的质数
2015/03/24 Python
说一说Python logging
2016/04/15 Python
django开发教程之利用缓存文件进行页面缓存的方法
2017/11/10 Python
浅谈pandas用groupby后对层级索引levels的处理方法
2018/11/06 Python
基于django 的orm中非主键自增的实现方式
2020/05/18 Python
pytorch  网络参数 weight bias 初始化详解
2020/06/24 Python
python openpyxl模块的使用详解
2021/02/25 Python
移动端html5 meta标签的神奇功效
2016/01/06 HTML / CSS
美国家居装饰和豪华家具购物网站:One Kings Lane
2018/12/24 全球购物
来自世界各地的饮料:Flavourly
2019/05/06 全球购物
新东网科技Java笔试题
2012/07/13 面试题
大学班级学风建设方案
2014/05/01 职场文书
超市理货员岗位职责
2014/07/04 职场文书
学校安全教育月活动总结
2014/07/07 职场文书
少年雷锋观后感
2015/06/10 职场文书
党章学习心得体会2016
2016/01/14 职场文书
导游词之湖北梁子湖
2019/11/07 职场文书
zabbix自定义监控nginx状态实现过程
2021/11/01 Servers