检查值是否为 false、true 或 null

del*_*min 4 javascript

我想检查变量是否为假、真或空。如果为 null 或未定义,则默认将数组分配给变量。在其他语言中,这种语法很好用。然而,在 js 中,当值为 false 时,它​​将数组分配给myBool

const boolFromBody = false;
const myBool = boolFromBody || [true, false];
console.log(myBool)
Run Code Online (Sandbox Code Playgroud)

我设法用这种语法来做到这一点,我只检查空值

const boolFromBody = null;
let otherBool = boolFromBody;
if (boolFromBody === null) {
  otherBool = [true, false]
}
console.log(otherBool);
Run Code Online (Sandbox Code Playgroud)

有没有更好的方法在js中做到这一点?

Ifa*_*uki 5

空合并。

检查变量是否为空或未定义,如果是,则将其分配给默认值。0false不被视为无效,并将被分配给该值。

空合并运算符的??行为与运算符非常相似||,不同之处在于我们在评估运算符时不使用“truthy”。相反,我们使用 的定义nullish,意思是“值是否严格等于nullundefined?”

let a = null;

let b = a ?? "test";

console.log(b);
Run Code Online (Sandbox Code Playgroud)

示例与 false

let a = false;

let b = a ?? "test";

console.log(b);
Run Code Online (Sandbox Code Playgroud)