首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >将truthy或False转换为显式布尔值,即转换为True或False

将truthy或False转换为显式布尔值,即转换为True或False
EN

Stack Overflow用户
提问于 2015-07-01 15:48:38
回答 2查看 96.3K关注 0票数 116

我有一个变量。让我们称它为toto

toto可以设置为undefinednull、字符串或对象。

我想检查toto是否设置为数据,这意味着设置为字符串或对象,而不是undefinednull,并在另一个变量中设置相应的布尔值。

我想到了语法!!,它看起来像这样:

代码语言:javascript
复制
var tata = !!toto; // tata would be set to true or false, whatever toto is.

如果toto为undefinednull,则第一个!将设置为false,否则设置为true,第二个将反转它。

但它看起来有点奇怪。那么,有没有更清晰的方法来做到这一点呢?

我已经研究过this question,但是我想在一个变量中设置值,而不仅仅是在if语句中检查它。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-07-01 15:51:25

是的,您可以随时使用以下命令:

代码语言:javascript
复制
var tata = Boolean(toto);

下面是一些测试:

代码语言:javascript
复制
for (var value of [0, 1, -1, "0", "1", "cat", true, false, undefined, null]) {
    console.log(`Boolean(${typeof value} ${value}) is ${Boolean(value)}`);
}

结果:

代码语言:javascript
复制
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
票数 180
EN

Stack Overflow用户

发布于 2020-07-16 15:22:58

您可以使用Boolean(obj)!!objtruthy/falsy转换为true/false

代码语言:javascript
复制
var obj = {a: 1}
var to_bool_way1 = Boolean(obj) // true
var to_bool_way2 = !!obj // true
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31155477

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档