基本思路是传入一个变量,返回一个数组。数组内包含它是否属于某个数据类型的true或false信息
主要通过typeof判断的基础数据类型,其余数据类型使用Object.prototype.toString.call()判断
/**
* 用于判断数据类型,传入一个变量,返回一个数组。数组内包含它是否属于某个数据类型的true或false信息
* @author shi yechen
* @param {var} 要判断数据类型的变量
* @return {Array} 包含传入函数的变量是否属于某个数据类型的true或false信息
*/
'use strict' //我们计划判断number、string、boolean、null、undefined、symbol六种基本数据类型以及object、array、function三种引用数据类型
var a, //用于传递要判断的数据
toString, //用于存储Object.prototype.toString方法,方便调用
arr = []; //用于存储判断信息用于输出
function judge(a){ //使用时,只需要调用这个函数,传入想要判断的变量,就可以输出判断结果
arr.push(a); //数组第一位存放要判断的变量,可有可无
function isNumber(a){
arr.push("isNumber:" + (typeof(a) == 'number')); //判断完成后在数组中添加是否为number的提示信息
};
isNumber(a);
function isString(a){
arr.push("isString:" + (typeof(a) == 'string'));
};
isString(a);
function isBoolean(a){
arr.push("isBoolean:" + (typeof(a) == 'boolean'));
};
isBoolean(a);
toString = Object.prototype.toString; //存储Object.prototype.toString方法,开始使用Object.prototype.toString.call()
function isArr(a){
arr.push("isArray:" + (toString.call(a) == '[object Array]'));
};
isArr(a);
function isFunction(a){
arr.push("isFunction:" + (toString.call(a) == '[object Function]'));
};
isFunction(a);
function isNull(a){
arr.push("isNull:" + (toString.call(a) == '[object Null]'));
}
isNull(a);
function isUndefined(a){
arr.push("isUndefined:" + (toString.call(a) == '[object Undefined]'));
}
isUndefined(a);
function isSymbol(a){
arr.push("isSymbol:" + (toString.call(a) == '[object Symbol]'));
}
isSymbol(a);
function isObject(a){
arr.push("isObject:" + (toString.call(a) == '[object Object]'));
}
isObject(a);
return arr; //返回判断信息
}