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如何实现点击时高亮显示代码
Jan 22 Javascript
jquery 选取方法都有哪些
May 18 Javascript
jQuery学习笔记之创建DOM元素
Jan 19 Javascript
jQuery实现定位滚动条位置
Aug 05 Javascript
点击页面任何位置隐藏div的实现方法
Sep 05 Javascript
JS访问DOM节点方法详解
Nov 29 Javascript
详解Vue-基本标签和自定义控件
Mar 24 Javascript
vue2 前后端分离项目ajax跨域session问题解决方法
Apr 27 Javascript
浅析vue-router jquery和params传参(接收参数)$router $route的区别
Aug 03 jQuery
详解Vue中组件的缓存
Apr 20 Javascript
如何使用JS console.log()技巧提高工作效率
Oct 14 Javascript
vue element实现表格合并行数据
Nov 30 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
PHP实现多文件上传的方法
2015/07/08 PHP
由prototype_1.3.1进入javascript殿堂-类的初探
2006/11/06 Javascript
jQuery帮助之CSS尺寸(五)outerHeight、outerWidth
2009/11/14 Javascript
jquery实现网站超链接和图片提示效果
2013/03/21 Javascript
JS正则验证邮箱的格式详细介绍
2013/11/19 Javascript
解析Javascript中中括号“[]”的多义性
2013/12/03 Javascript
js输出阴历、阳历、年份、月份、周示例代码
2014/01/29 Javascript
js统计录入文本框中字符的个数并加以限制不超过多少
2014/05/23 Javascript
jQuery 1.9.1源码分析系列(十)事件系统之绑定事件
2015/11/19 Javascript
jQuery+JSON实现AJAX二级联动实例分析
2015/12/18 Javascript
Vue实现百度下拉提示搜索功能
2017/06/21 Javascript
mui开发中获取单选按钮、复选框的值(实例讲解)
2017/07/24 Javascript
Vue.js轮播图走马灯代码实例(全)
2019/05/08 Javascript
微信小程序 自定义复选框实现代码实例
2019/09/04 Javascript
JS数组splice操作实例分析
2019/10/12 Javascript
JS正则表达式验证端口范围(0-65535)
2020/01/06 Javascript
浅谈Vue使用Cascader级联选择器数据回显中的坑
2020/10/31 Javascript
iview实现动态表单和自定义验证时间段重叠
2021/01/10 Javascript
[01:48]帕吉至宝加入游戏,遗迹战场现“千劫神屠”
2018/04/07 DOTA
python操作MySQL数据库的方法分享
2012/05/29 Python
Python cookbook(数据结构与算法)将序列分解为单独变量的方法
2018/02/13 Python
python os.listdir按文件存取时间顺序列出目录的实例
2018/10/21 Python
python代理工具mitmproxy使用指南
2019/07/04 Python
python3模拟实现xshell远程执行liunx命令的方法
2019/07/12 Python
pandas的to_datetime时间转换使用及学习心得
2019/08/11 Python
Python元组 tuple的概念与基本操作详解【定义、创建、访问、计数、推导式等】
2019/10/30 Python
opencv resize图片为正方形尺寸的实现方法
2019/12/26 Python
python实现多进程按序号批量修改文件名的方法示例
2019/12/30 Python
详解CSS3伸缩布局盒模型Flex布局
2018/08/20 HTML / CSS
英文简历自荐信范文
2013/12/11 职场文书
小学生植树节活动总结
2014/07/04 职场文书
医生爱岗敬业演讲稿
2014/08/26 职场文书
成都人事代理协议书
2014/10/25 职场文书
警告通知
2015/04/25 职场文书
2015年超市员工工作总结
2015/05/04 职场文书
USB TYPE-C 或将成为所有智能手机充电标准
2022/04/21 数码科技