使用集合,我想知道什麼是最佳做法:未定義屬性(缺少時)或將其定義爲false。Javascript performance for property access:undefined vs false
例子:
第一種情況:
[
{"age":42}, // first item
{} // second item, age is undefined
]
第二種情況:
[
{"age":42}, // first item
{"age":false} // second item, age is explicitly set to false
]
然後使用此集合用MongoDB的或AngularJS重複或什麼之內,我可以做到以下幾點:
if (item.age){ doSomething();}
這兩個選項都是正確的。
我個人認爲第一個案例很有趣,因爲如果我們沒有一個信息我們沒有指定它但是有沒有找到一個缺失的財產的成本,缺陷或風險?
您指的是正確的問題,使用undefined將在序列化期間簡單地刪除該屬性。以下是真的:'JSON.stringify({「age」:undefined})==「{}」'相反,使用null會讓我覺得屬性應該包含一個對象。 – 2014-12-02 08:16:36
@FlavienVolken:如果將*序列化爲JSON *,則會丟棄,如上所述。 Re'null',這當然是它通常使用的方式,但是'false'給了我屬性應該包含布爾值的感覺。 :-)在這兩者中,我可能會使用'null'(但我可能完全離開該屬性)。 – 2014-12-02 08:23:22
我的表演圖表顯示它稍微快一點,我終於切換回'undefined'。是的,添加一個'false'可能意味着檢查它不是一個布爾值,這基本上不是好的。 – 2014-12-02 08:45:00