说到变量类型的辨别,我们一般会想到typeof方法,但是对于原始值的包装类,如果用typeof();
会只显示object 当然我们用Object.prototype.toString.call(new String)来判断的时候控制台打印'[object String]' 但是不免有些麻烦
所以,封装出一个type方法,使得那些特殊的变量都能让我们很清楚地辨别出其类型。
下面看代码:
function type(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; } }