如何用单一操作符将JavaScript中空值型变量转为布尔值?
基于Nullish值转换布尔值的JavaScript写法
目前JavaScript里并没有像!!myVar或Boolean(myVar)那样的单一操作符语法糖,能直接把值转换成仅在值为null/undefined时为false,其余所有值(包括0、空字符串、false这类假值)都为true的布尔值。
不过有几种简洁的写法能实现你的需求:
最简洁直接的判断:
if (myVar != null) {...}
这里的!= null会同时匹配null和undefined,其他任何值(哪怕是假值)都会返回true,完全符合你基于nullish值转换的要求。完整的严格判断写法:
if (myVar !== null && myVar !== undefined) {...}
这种写法更直白,适合需要明确展示判断逻辑的场景,但比上面的写法稍长。
另外需要注意:你提到的if (myVar ?? true) {...}存在逻辑问题——如果myVar是0、空字符串这类假值但非nullish的值时,myVar ?? true会返回myVar本身,而这些值在if条件里会被判定为false,不符合你“非nullish值都转为true”的需求。
内容的提问来源于stack exchange,提问作者Juan Perez
相关产品推荐
相关产品推荐

