利用 typeof 和 toString 方法进行封装,可以判断传入的值的具体类型,相当于typeof的增强版。
function type(target) {
var ret = typeof(target);
var template = { //设置模版值
'[object Array' : 'array',
'[object Object]' : 'object',
'[object Number]' : 'number-object',
'[object Boolean]' : 'boolean-object',
'[object String]' : 'string-object',
}
if(target === null) { //判断是不是null
return 'null';
}
if(ret == 'object') { //判断是不是对象
var str = Object.prototype.toString.call(target);
return template[str];
}else{ //判断原始值或者function
return ret;
}
}