首页 > Web开发 > 详细

js检测数据类型的方法你都掌握了几个?

时间:2017-02-26 19:26:35      阅读:348      评论:0      收藏:0      [点我收藏+]
    //1、typeof检测
/*var obg = {};
var ary = [];
var reg = /^$/;
var fn = function () {};
var num = 1;
var bool = true;
var nul = null;
var undef = undefined;
var str = "";
console.log(typeof obg);//"object"
console.log(typeof ary);//"object"
console.log(typeof num);//"number"
console.log(typeof reg);//"object"
console.log(typeof fn);//"function"
console.log(typeof bool);//"boolean"
console.log(typeof nul);//"object"
console.log(typeof undef);//"undefined"
console.log(typeof str);//"string"*/
//typrof不能具体细分是正则、数组、null、对象,因为用typeof检测的时候结果都是"object"

//2、instanceof检测,只要在实例的原型链上检测出来的结果都是true
//var num = 1;字面量方式创建
//console.log( 1 instanceof Number); ->false
//var num = new Number(1);实例方式创建
//console.log( num instanceof Number);->true
//var ary = [];
//console.log(ary instanceof Array);->true
//console.log(ary instanceof Object);->true
//var fn = function () {};
//console.log(fn instanceof Function);->true
//console.log(fn instanceof Object);->true

/*function Fn() {};
var ary = new Array;
Fn.prototype = ary;
var f = new Fn();
console.log( f instanceof Array);
console.log( f instanceof Fn)*/
//3、constructor 构造函数可以处理基本数据类型检测
/*var ary = [];
console.log( ary.constructor === Array);
var num = 1;
console.log(num.constructor === Number)*/

//4、Object.prototype.toString.call最准确最常用的方法
/*var ary = [];
var reg = /^$/;
var fn = function () {};
var num = 1;
var bool = true;
console.log(Object.prototype.toString.call(ary));->[object Array]
console.log(Object.prototype.toString.call(reg));->[object RegExp]
console.log(Object.prototype.toString.call(fn));->[object Function]
console.log(Object.prototype.toString.call(num));->[object Number]
console.log(Object.prototype.toString.call(bool));->[object Boolean]*/

js检测数据类型的方法你都掌握了几个?

原文:http://www.cnblogs.com/wuxianqiang/p/6445122.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!