变量类型的辨别;一般用到typeof 方法,但是对于原始值的包装类,如果用typeof();会只显示object。
用Object.prototype.toString.call(new String)来判断的时候控制台打印’[object String]’;有些麻烦:
所以,封装出一个typeof方法;如下:
function _typeof(target){
var ret = typeof(target) ;
var template = {
'[object Array]' : 'array',
'[object Object]' : 'object',
'[object String]' : 'string - object',
'[object Number]' : 'Number - object',
'[object Boolean]': 'Boolean - object',
}
if(target === null){
return 'null';
}
if(ret == 'object'){
var str = Object.prototype.toString.call(target);
return template[str];
}
else {
return ret;
}
}