Cleanest way to convert to boolean [duplicate]

那年仲夏 提交于 2019-11-27 05:34:34

问题


This question already has an answer here:

  • How can I convert a string to boolean in JavaScript? 75 answers

I have a variable. Let's call it toto.

This toto can be set to undefined, null, a string, or an object.

I would like the cleanest way to check if toto is set to a data, which means set to a string or an object, and neither undefined nor null, and set corresponding boolean value in another variable.

I thought to the syntax !!, that would look like this:

var tata = !!toto; // tata would be set to true or false, whatever toto is.

The first ! would be set to false if toto is undefined or null and true else, and the second one would invert it.

But it looks a little bit creepy... So is there a better/cleaner way to do so ?

I already looked this question, but I want to set a value in a variable, not just check it in an if statement.


回答1:


Yes, you can always use this:

var tata = Boolean(toto);

And here are some tests:

for (var value of [0, 1, -1, "0", "1", "cat", true, false, undefined, null]) {
    console.log(`Boolean(${typeof value} ${value}) is ${Boolean(value)}`);
}

Results:

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


来源:https://stackoverflow.com/questions/31155477/cleanest-way-to-convert-to-boolean

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!