[在 JavaScript 中把一个代表布尔值的字符串(例如,true
,false
)转换成布尔值]
第一个场景是将代表布尔值的字符串(例如,true
、false
、yes
、no
、0
、1
)转换为一个固有类型。我们在特定的情况下使用这种方案,例如我们有 HTML 表单元素和一个隐藏的表单,它是基于用户在检查输入或选择输入中的选择而显示的。
[例子]
<input type="checkbox" id="display_hidden_form1" name="display_hidden_form1" value="true"> <label for="display_hidden_form1"> Display hide form1</label><br> <input type="checkbox" id="display_hidden_form2" name="display_hidden_form2" value="false"> <label for="display_hidden_form2"> Display hide form2</label><br> <script> let myValue = document.getElementById("display_hidden_form1").value; let isTrueval = myValue === 'true'; let myValue2 = document.getElementById("display_hidden_form2").value; let isTrueval2 = myValue2 === 'true'; console.log({isTrueval, isTrueval2}); </script>
输出:
{isTrueval: true, isTrueval2: false}
[速记例子:输出]
const convertString = (word) =>{ switch(word.toLowerCase().trim()){ case "yes": case "true": case "1": return true; case "no": case "false": case "0": case null: return false; default: return Boolean(word); } } console.log(convertString("true")); console.log(convertString("no")); console.log(convertString("dasdasd"));
输出:
true false true
[将字符串转换为布尔值来检查空字符串]
有两种方法可以将变量转换为布尔值. 首先是通过双 NOT 运算符(!!
),其次是通过类型转换 (Boolean(value))
。
let myBool = Boolean("false"); let myBool2 = !!"false"; console.log({myBool, myBool2});
输出:
{myBool: true, myBool2: true}
value
是一个变量。对于 null
、undefined
、0
、000
、""
和 false
,它返回 false
。对于字符串和空格,它返回 true
。
在上面的例子中,"false"
是一个字符串,因此,Boolean("false")
返回 true
。
对于第一种情况,你可能应该谨慎使用这两种方法,任何不是空字符串的字符串都会通过使用它们来评估为 true
。