【问题标题】:initialize var with integer : zero == false用整数初始化 var:零 == false
【发布时间】:2021-12-31 10:15:07
【问题描述】:
如何在 JS 中正确初始化 Int 变量?
var h = {
baz: 0
} // or {} has same result => 42
function foo(opt) {
opt.baz ||= 42;
return opt.baz;
}
foo(h);
这是因为 0 == false 为真...
那么我怎样才能正确定义我的变量默认值呢?
【问题讨论】:
标签:
javascript
integer
default-value
【解决方案1】:
你可以使用Logical nullish assignment:
var h = {baz: 0}
function foo(opt){
opt.baz ??= 42;
return opt.baz;
}
console.log(foo(h));
UPD:如果你需要处理NaN:
var h = {baz: NaN}
function foo(opt){
var defaultOpt = { baz: 42 }
opt.baz = Number.isNaN(opt.baz)
? defaultOpt.baz
: opt.baz ?? defaultOpt.baz;
return opt.baz;
}
console.log(foo(h));