js判断数据类型的方法
基本类型: “number”,”string”,”undefined”,”boolean”,”object”,“function” 。
能精准判断数据类型 Object.prototype.toString方法----精确判断对象的类型
var num = 1;Object.prototype.toString.call(num); //[object Number
var num = '1';Object.prototype.toString.call(num); //[object String]
var num = [1,2,3,4];Object.prototype.toString.call(num); //[object Array
var num = {a:'1',b:'2'};Object.prototype.toString.call(num); //[object Object]
var num = null;Object.prototype.toString.call(num); //[object Null]
var num = undefined;Object.prototype.toString.call(num); //[object Undefined]
var num = new Date();Object.prototype.toString.call(num); //[object Date]
var num = true;Object.prototype.toString.call(num); //[object Boolean]
var num = function(){};Object.prototype.toString.call(num); //[object Function]
var num = /^\d/;Object.prototype.toString.call(num); //[object RegExp]
封装一个专门判断数组和对象
var getDataType = function(x){
var type = Object.prototype.toString.call(x);
if( type =='[object Array]'){
return 'Array'
}else if(type =='[object object]'){
return 'Object'
}else{
return '不是object'
}
}
console.log(getDataType({}));//Object
console.log(getDataType([1,2,3]));//Array
toString()的基本用法(我们使用不同进制把一个数字转换为字符串)
var a=[5,3,4,1];
console.log(a.toString());//5,3,4,1
var num = 15;
var a = num.toString();//15
var b = num.toString(2);//1111
var c = num.toString(8);//17
var d = num.toString(16);//f
能判断基本的数据类型 typeof
var num = true;console.log(typeof num); //boolean
var num = 1;console.log(typeof num); //number
var num = '1';console.log(typeof num); //string
var num = {a:'1'};console.log(typeof num); //object
var num = [1,2,3];console.log(typeof num); //object
var num = null;console.log(typeof num); //object
var num = undefined;console.log(typeof num); //undefined
var num = function(){};console.log(typeof num); //function
var num = new Date();console.log(typeof num); //object
var num = /^\d/;console.log(typeof num); //object
instaceof 只可以用来判断数组和对象
var a = {a:'1'};
var b=[1,2,3,4];
console.log(a instanceof Array);//false
console.log(a instanceof Object);//true
console.log(b instanceof Array);//true
由于数组也属于对象,所以使用instanceof判断一个数组是否为对象的时候结果也会是true
console.log(b instanceof Object);//true
此时可以封装函数进行改进:
var getDataType = function(x){
if(x instanceof Array){
return 'Array'
}else if(x instanceof Object){
return 'Object'
}else{
return '不是object'
}
}
console.log(getDataType({}));//Object
console.log(getDataType([1,2,3]));//Array
使用constructor
var obj = {a:'1',b:'2'}
var arr = [1,2,3,4]
console.log(obj.constructor == Object);//true
console.log(arr.constructor == Array);//true
posted on 2019-03-05 15:02 Cherish_Now 阅读(214) 评论(0) 收藏 举报
浙公网安备 33010602011771号