typeof 经常混淆array、object、null等,升级处理一下。
可以将这个函数放在common.js中使用。
function getTypeName(v) {
var v_str = JSON.stringify(v);
if (typeof v == 'object') {
// 判断null
if (v_str == 'null') {
return 'null';
}
// 判断[]
if (v_str.charAt(0) == '[') {
return 'array';
}
// 判断{}
if (v_str.charAt(0) == '{') {
return 'object';
}
// 判断Date对象
if (v instanceof Date) {
return 'date';
}
// 其他...
return 'other';
} else if(typeof v == 'number') {
// 判断NaN
if (v_str == 'null') {
return 'nan';
}
return typeof v;
} else {
return typeof v;
}
}
var a = 0;
var b = "";
var c = null;
var d = false;
var e = function () {};
var f = [];
var g = {};
var h;
var i = new Array();
var j = new Object();
var k = new Date();
var l = NaN;
console.log(getTypeName(a)); // number
console.log(getTypeName(b)); // string
console.log(getTypeName(c)); // null
console.log(getTypeName(d)); // boolean
console.log(getTypeName(e)); // function
console.log(getTypeName(f)); // array
console.log(getTypeName(g)); // object
console.log(getTypeName(h)); // undefined
console.log(getTypeName(i)); // array
console.log(getTypeName(j)); // object
console.log(getTypeName(k)); // date
console.log(getTypeName(l)); // nan