Object.keys()
想要获取如下键(a 和 c):
var a = { a: 'b', c: 'd' };
通常使用的方法,是通过 for...in... 将键收集到一个数组里面:
var akeys = [];
for (var i in a) {
akeys.push(i);
}
如果想过滤某个键,可以采用如下方式对 Object.prototype 进行扩展:
Object.prototype.c = 'd';
然后可以用 hasOwnProperty() 方法来进行检擦:
for (var i in a) {
if (a.hasOwnProperty(i)) {
akeys.push(i)
}
}
在 V8 中,要获取对象上的键,还有更简单的方法:
Object.keys(a)
Array.isArray()
通常情况下如果要进行类型判断 typeof 只会返回 Object ,要查看其类型还需要通过查看对象内部 [[class]] 值,才能进行精准判断。然而在实际操作中,我们则需要返回的检查是否为真数组。V8 中提供的 Array.isArray() 对数组返回 ture,对其他值则返回 false。
Array.isArray(new Array()); //=>true
Array.isArray([]); //=>true
Array.isArray(new Object()); //=>false
Array.isArray(''); //=>false