将undefined强制转换为0

Ste*_*ett 0 javascript integer casting undefined

JavaScript(ES2015)中是否存在执行此操作的简洁操作:

x => x === undefined ? 0 : x
Run Code Online (Sandbox Code Playgroud)

我一直遇到我想增加的情况x,但是最初它是不确定的,因此代码变成:

foo.bar = (foo.bar === undefined ? 0 : foo.bar) + 1;
Run Code Online (Sandbox Code Playgroud)

要么

foo.bar = (foo.bar ? foo.bar : 0) + 1;
Run Code Online (Sandbox Code Playgroud)

是否有较少重复的方式来执行此投射?

Dav*_*iao 5

foo.bar = (foo.bar || 0) + 1;
Run Code Online (Sandbox Code Playgroud)

应该管用。


Eri*_*dán 5

ES2020 和 nullish 合并运算符可以简化它:

foo.bar = (foo.bar ?? 0) + 1;
Run Code Online (Sandbox Code Playgroud)