簡體   English   中英

將 undefined 轉換為 0

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM