Javascript 检查值是否为false、true或null
我想检查变量是否为false、true或null。如果为null或未定义,则默认情况下将数组分配给变量。在其他语言中,这种语法可以很好地使用。然而,在js中,当值为false时,它将数组分配给Javascript 检查值是否为false、true或null,javascript,Javascript,我想检查变量是否为false、true或null。如果为null或未定义,则默认情况下将数组分配给变量。在其他语言中,这种语法可以很好地使用。然而,在js中,当值为false时,它将数组分配给myBool const boolFromBody=false; const myBool=boolFromBody | |[对,错]; log(myBool)空值合并 检查变量是否为null或未定义,如果是,则将其指定为默认值0或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
/未定义的(我认为是“空”)或“任何其他”(非空)中的一个