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 Tips(4) 一些关于提高JQuery性能的Tips
Dec 19 Javascript
简略的前端架构心得&&基于editor为例子的编码小技巧
Nov 25 Javascript
让你的博文自动带上缩址的实现代码,方便发到微博客上
Dec 28 Javascript
javascript学习笔记(三)显示当时时间的代码
Apr 08 Javascript
jQuery focus和blur事件的应用详解
Jan 26 Javascript
JavaScript操作HTML元素和样式的方法详解
Oct 21 Javascript
js 输入框 正则表达式(菜鸟必看教程)
Feb 19 Javascript
JavaScript之Date_动力节点Java学院整理
Jun 28 Javascript
Vue中之nextTick函数源码分析详解
Oct 17 Javascript
修改node.js默认的npm安装目录实例
May 15 Javascript
axios向后台传递数组作为参数的方法
Aug 11 Javascript
node学习笔记之读写文件与开启第一个web服务器操作示例
May 29 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
轻松修复Discuz!数据库
2008/05/03 PHP
用PHP ob_start()控制浏览器cache、生成html实现代码
2010/02/16 PHP
PHP框架Laravel学习心得体会
2015/10/28 PHP
某人初学javascript的时候写的学习笔记
2010/12/30 Javascript
读jQuery之六 缓存数据功能介绍
2011/06/21 Javascript
Jquery 改变radio/checkbox选中状态,获取选中的值(示例代码)
2013/12/12 Javascript
分享15个大家都熟知的jquery小技巧
2015/12/02 Javascript
实践中学习AngularJS表单
2016/03/21 Javascript
JS未跨域操作iframe里的DOM
2016/06/01 Javascript
jQuery基于函数重载实现自定义Alert函数样式的方法
2016/07/27 Javascript
jQuery制作网页版选项卡
2016/07/28 Javascript
JS实现页面跳转参数不丢失的方法
2016/11/28 Javascript
Bootstrap实现圆角、圆形头像和响应式图片
2016/12/14 Javascript
浅谈JavaScript的函数及作用域
2016/12/30 Javascript
jquery实现垂直无限轮播的方法分析
2019/07/16 jQuery
swiper Scrollbar滚动条组件详解
2019/09/08 Javascript
vue分页插件的使用方法
2019/12/25 Javascript
echarts实现晶体球面投影的实例教程
2020/10/10 Javascript
Python实现端口复用实例代码
2014/07/03 Python
python读取txt文件,去掉空格计算每行长度的方法
2018/12/20 Python
django之对FileField字段的upload_to的设定方法
2019/07/28 Python
python GUI库图形界面开发之PyQt5控件数据拖曳Drag与Drop详细使用方法与实例
2020/02/27 Python
基于python图像处理API的使用示例
2020/04/03 Python
Numpy(Pandas)删除全为零的列的方法
2020/09/11 Python
web字体加载方案优化小结
2019/11/29 HTML / CSS
台湾最大银发乐活百货:乐龄网
2018/05/21 全球购物
软件测试笔试题
2012/10/25 面试题
婚礼答谢宴主持词
2014/03/14 职场文书
2015年安全员工作总结范文
2015/04/22 职场文书
赡养老人协议书范本
2015/08/06 职场文书
Python爬虫数据的分类及json数据使用小结
2021/03/29 Python
jdbc使用PreparedStatement批量插入数据的方法
2021/04/27 MySQL
windows安装python超详细图文教程
2021/05/21 Python
springcloud之Feign超时问题的解决
2021/06/24 Java/Android
go goth封装第三方认证库示例详解
2022/08/14 Golang
MySQL远程无法连接的一些常见原因总结
2022/09/23 MySQL