使用JavaScript,有間差Vs'Y [X]`
let foo = {
a: true,
b: false,
c: true
}
'c' in foo
and
foo['c']
?
總想知道的是,不知道如何尋找答案在性能或行爲方面的任何差異。唯一明顯的區別是,如果'c'指向falsy值,則foo['c']
將返回false,如果foo具有'c'鍵,則'c' in foo
將返回true。
我之所以提出這樣的問題:
在許多情況下,我想只存儲一個鍵(快速搜索),我不關心的值:
let foo = { // the keys are important, values of no consequence
a: undefined,
b: undefined,
c: undefined
}
我想知道是否僅僅存儲密鑰是最佳做法,甚至沒有分配值。
if(!('a' in foo)){
foo['a'] = undefined;
}
它只是似乎很奇怪給哈希的任何值,當我不需要使用的值,我只需要存儲的關鍵。
最簡單的方法是通過https://jsperf.com/ – frozen
權利創建測試,但除了B的情況下(這是我所描述的)是有在查找時間或差還要別的嗎? –
「明顯的區別」是不同的,是的,這是非常重要的。誰在乎他們做不同事情時的查找時間?使用符合正確含義的檢查。 – Ryan