例如我有一個這樣的物件:
const a = {
b: "value"
// and also what about: c: '', or c: 0, c: false ?
};
我想為我的物件分配一個'c'鍵,但前提是之前沒有分配過。
通常我們會做這樣的事情:
if (!a.c) {
a.c = 1; // or without { } for a bit shorty way.
}
但ES12標準引入了一點新的Nullish凝聚和邏輯運算子,這樣可以有人向我解釋它是如何幫我更換上面的例子中,什么對null和0多項行為(空字串和false行為也是一個加號)?
它背后的真正問題是:使用這個新功能是否真的可以覆寫所有情況并在實際生產專案中替換上面的示例,還是保持更傳統的方式更好。(當然,這都是關于語法糖作業人員的,但我想了解更多關于覆寫范圍的資訊)
uj5u.com熱心網友回復:
僅當左側的值是或 時,邏輯空賦值才??=分配值。undefinednull
a.c ??= 1;
如果您想替換任何虛假值,例如'', 0, false, null, undefined,您可以采用邏輯 OR 賦值||=。
a.c ||= 1;
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/362814.html
