Javascript 检查值是否为false、true或null

Javascript 检查值是否为false、true或null,javascript,Javascript,我想检查变量是否为false、true或null。如果为null或未定义,则默认情况下将数组分配给变量。在其他语言中,这种语法可以很好地使用。然而,在js中,当值为false时,它将数组分配给myBool const boolFromBody=false; const myBool=boolFromBody | |[对,错]; log(myBool)空值合并 检查变量是否为null或未定义,如果是,则将其指定为默认值0或false不被视为空值,将被分配给该值 空合并运算符?的作用与|运算符非常

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

const boolFromBody=false;
const myBool=boolFromBody | |[对,错];
log(myBool)
空值合并

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

空合并运算符
的作用与
|
运算符非常相似,只是我们在计算运算符时不使用“truthy”。相反,我们使用了
null
的定义,意思是“值是否严格等于
null
undefined
?”

设a=null;
设b=a??“测试”;

控制台日志(b)除了另一个答案之外,还有另一个答案可以确保向后兼容性(甚至IE6也支持它),因为它没有使用空合并操作符。如果您不使用babel,它会更详细,但也更方便和容易访问。 希望有帮助

const boolFromBody=null;
设myBool=boolFromBody==(null | |未定义)和&[true,false];

console.log(myBool)好的。。。我知道一定有更好的办法。。Thanks@delmin请注意,如果您在前端使用它,并非所有浏览器都支持它,因此您可能希望将它与babelI结合使用。我注意到。。。它在我的项目中起作用,所以一切正常。。谢谢“0或false不被视为falsy”->你在这里的意思是“nullish”或“nully”,而不是“falsy”,对吗?我认为“nullish”而不是“falsy”听起来不错,正如你在第一行中所写的。对我来说,
0
false
等等。。。在javascript中,它们总是“falsy”,因为每当它们被强制为布尔值(
if(myVar)
)时,它们的计算结果都是false。使用
,值不会强制为布尔值,它只强制为
null
/
未定义的
(我认为是“空”)或“任何其他”(非空)中的一个