我有一个变量。让我们称它为toto
。
此toto
可以设置为undefined
、null
、字符串或对象。
我想检查toto
是否设置为数据,这意味着设置为字符串或对象,而不是undefined
或null
,并在另一个变量中设置相应的布尔值。
我想到了语法!!
,它看起来像这样:
var tata = !!toto; // tata would be set to true or false, whatever toto is.
如果toto为undefined
或null
,则第一个!
将设置为false
,否则设置为true
,第二个将反转它。
但它看起来有点奇怪。那么,有没有更清晰的方法来做到这一点呢?
我已经研究过this question,但是我想在一个变量中设置值,而不仅仅是在if
语句中检查它。
发布于 2015-07-01 15:51:25
是的,您可以随时使用以下命令:
var tata = Boolean(toto);
下面是一些测试:
for (var value of [0, 1, -1, "0", "1", "cat", true, false, undefined, null]) {
console.log(`Boolean(${typeof value} ${value}) is ${Boolean(value)}`);
}
结果:
Boolean(number 0) is false
Boolean(number 1) is true
Boolean(number -1) is true
Boolean(string 0) is true
Boolean(string 1) is true
Boolean(string cat) is true
Boolean(boolean true) is true
Boolean(boolean false) is false
Boolean(undefined undefined) is false
Boolean(object null) is false
发布于 2020-07-16 15:22:58
您可以使用Boolean(obj)
或!!obj
将truthy/falsy
转换为true/false
。
var obj = {a: 1}
var to_bool_way1 = Boolean(obj) // true
var to_bool_way2 = !!obj // true
https://stackoverflow.com/questions/31155477
复制相似问题