When you need to convert a string representing boolean values like "true"
or "false"
into real boolean types, you can’t use direct comparison to true
and false
because all non-empty string data actually converts to true
in JavaScript.
The code below will log “Andy” instead of “Zack” to the console:
let myString = "false"; // returns boolean true
if (myString) {
console.log("Andy");
} else {
console.log("Zack");
}
When you need to convert strings into booleans, you need to create a robust method as follows
String comparison
You can compare the string values into another string to get the boolean value like this:
let myString = "false";
if(myString === "true"){
console.log("Andy");
} else {
console.log("Zack");
}
Sometimes you may have a string value in uppercase. You need to convert the string into lower case during comparison:
let myString = "FALSE";
if(myString.toLowerCase() === "true"){
console.log("Andy");
} else {
console.log("Zack");
}
Finally, you may have several string values that you want to convert true, such as “yes”, “on”, or “1”. You can create a more robust solution by using the switch
statement as follows:
let myString = "ON";
switch(myString.toLowerCase()){
case "true":
case "yes":
case "on":
case "1":
console.log("Value is true");
break;
default:
console.log("Value is false");
}