将truthy或falsy转换为显式布尔值,即True或False
Convert truthy or falsy to an explicit boolean, i.e. to True or False
我有一个变量。我们称之为toto
。
此toto
可以设置为undefined
、null
、字符串或对象。
我想检查toto
是否设置为数据,这意味着设置为字符串或对象,而不是undefined
或null
,并在另一个变量中设置相应的布尔值。
我想到了语法!!
,它看起来像这样:
var tata = !!toto; // tata would be set to true or false, whatever toto is.
如果toto是undefined
或null
和true
,则第一个!
将被设置为false
,而第二个则将其反转
但这看起来有点奇怪。那么,有没有更明确的方法来做到这一点呢?
我已经研究过这个问题,但我想在变量中设置一个值,而不仅仅是在if
语句中检查它。
是的,你可以一直使用这个:
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
!!o
也是Boolean(o)
的简写,工作原理完全相同。(用于将truthy/falsy
转换为true/false
)。
let o = {a: 1}
Boolean(o) // true
!!o // true
// !!o is shorthand of Boolean(o) for converting `truthy/falsy` to `true/false`
注意
相关文章:
- 如何从javascript/jquery中的复选框中获取布尔值
- KendoUI网格行过滤器,带有布尔值下拉列表
- php布尔值's小写AND大写和数字布尔值'可以接受
- 为什么 1.2 == true 返回 false 如果布尔值 (1.2) 实际上是真的
- 当值可能不是正确的布尔值时,如何测试 true
- 检查对象数组是否包含布尔值true/false
- Javascript TRUE和“;真“;为什么有人使用字符串而不是布尔值
- 当函数在 Javascript 中将其设置为 true 时,布尔值返回 false
- Javascript 布尔值:false && true 结果为 true
- 如何在骨干模型属性中设置布尔值true/false
- 当网格API布尔值为==='时更改CSS;true'
- 同时包含字符串true和布尔值true的Javascript
- 仅当布尔值为true时才运行JavaScript函数
- Javascript布尔值true变为false,false不会变为true
- 隐藏列表项基于布尔值true false jsp
- Angular自定义过滤器只返回布尔值=== true的结果
- 将truthy或falsy转换为显式布尔值,即True或False
- 布尔值(“false”)返回true.任何替代方案
- 如何获取对象数组中布尔值的计数(如果为 true)
- 如何在MongoDB中查询一个布尔值的字段,并返回一个布尔值,无论它是true还是false