if (typeof Array.isArray !== 'function') {
Array.isArray = function (value) {
return Object.prototype.toString().apply(value) === '[object array]';
};
}
这里使用到了 Object.prototype.toString.apply()
(或者使用 Object.prototype.toString.call()
) 的方式,这也是判断其它数据类型常用的一种方式,比如:
function getType(obj) {
var type = Object.prototype.toString.call(obj).match(/^\[object (.*)\]$/)[1].toLowerCase();
// Let "new String('')" return 'object'
if (type === 'string' && typeof obj === 'object') return 'object';
if (obj === null) return 'null';
if (obj === undefined) return 'undefined';
return type;
}
// 示例
getType('123') // 'string'
getType(234) // 'number'
getType(new Set()) // 'set'
getType(Symbol()) // 'symbol'