Object.keys()
想要獲取如下鍵(a 和 c):
var a = { a: 'b', c: 'd' };
通常使用的方法,是通過 for...in... 將鍵收集到一個數(shù)組里面:
var akeys = [];
for (var i in a) {
akeys.push(i);
}
如果想過濾某個鍵谷浅,可以采用如下方式對 Object.prototype 進(jìn)行擴(kuò)展:
Object.prototype.c = 'd';
然后可以用 hasOwnProperty() 方法來進(jìn)行檢擦:
for (var i in a) {
if (a.hasOwnProperty(i)) {
akeys.push(i)
}
}
在 V8 中,要獲取對象上的鍵,還有更簡單的方法:
Object.keys(a)
Array.isArray()
通常情況下如果要進(jìn)行類型判斷 typeof 只會返回 Object ,要查看其類型還需要通過查看對象內(nèi)部 [[class]] 值,才能進(jìn)行精準(zhǔn)判斷秸架。然而在實(shí)際操作中,我們則需要返回的檢查是否為真數(shù)組咆蒿。V8 中提供的 Array.isArray() 對數(shù)組返回 ture东抹,對其他值則返回 false。
Array.isArray(new Array()); //=>true
Array.isArray([]); //=>true
Array.isArray(new Object()); //=>false
Array.isArray(''); //=>false