[英]Cast undefined to 0
JavaScript (ES2015) 中是否有一個簡潔的操作可以做到這一點:
x => x === undefined ? 0 : x
我不斷遇到我想增加x
,但它最初是未定義的,因此代碼變為:
foo.bar = (foo.bar === undefined ? 0 : foo.bar) + 1;
或者
foo.bar = (foo.bar ? foo.bar : 0) + 1;
有沒有一種不那么重復的方式來做這個演員?
foo.bar = (foo.bar || 0) + 1;
應該管用。
由於undefined + 1
是 NaN,這是假的,而undefined
是假的,你有幾個選擇。
假設你的數字永遠不會是負數(特別是 -1)
foo.bar = foo.bar + 1 || 1
或者這適用於foo.bar
任何值,盡管大衛的答案可能是一個更好的主意。
foo.bar ? foo.bar++ : foo.bar = 1
ES2020 和空合並運算符允許簡化它:
foo.bar = (foo.bar ?? 0) + 1;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.