码迷,mamicode.com
首页 > 编程语言 > 详细

【前端学习笔记01】JavaScript源生判断数据类型的方法

时间:2016-11-09 19:32:59      阅读:143      评论:0      收藏:0      [点我收藏+]

标签:log   mat   efi   undefined   call   native   tostring   script   div   

 

原始类型(值类型):Undefined、Null、Number、String、Boolean;

对象类型(引用类型):Object;

typeof 

可以识别标准类型,null外(返回Object);不能识别具体对象类型(Function除外)。

用法举例:

var num = 100;
typeof num;  // 或 typeof(num) --> number 

注:除number 、string、boolean、undefined、function类型外,其余类型都判断为object(包括null)。

instanceof 

可以判别内置对象类型、自定义对象类型;不能判别原始类型。

var arr = [];
arr instanceof Array; -->true

Object.prototype.toString.call()

可以识别标准类型、内置对象类型;不能识别自定义对象类型。

Object.prototype.toString.call(123); // --> [object Number]

constructor 

可以判别内置对象类型、自定义对象类型、标准类型(但Underfined/Null不能识别)。

var num = 100;
num.constructor === Number; // --> true;

返回构造器写法:

function getConstructorName(obj){
    return (obj===undefined||obj===null)?obj:(obj.constructor&&obj.constructor.toString().match(/function\s*([^(]*)/)[1]);
} // match()把返回的 function Number() { [native code] } 中的Number拿到。

【前端学习笔记01】JavaScript源生判断数据类型的方法

标签:log   mat   efi   undefined   call   native   tostring   script   div   

原文地址:http://www.cnblogs.com/zachary93/p/6048047.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!