我可以将表示布尔值(例如,“ true”,“ false”)的字符串转换为JavaScript中的固有类型吗?
我有一个隐藏的HTML表单,可根据用户在列表中的选择进行更新。此表单包含一些表示布尔值的字段,并使用内部布尔值动态填充。但是,一旦将此值放入隐藏的输入字段中,它将成为一个字符串。
确定字段的布尔值(将其转换为字符串后)的唯一方法是依赖于其字符串表示形式的文字值。
var myValue = document.myForm.IS_TRUE.value; var isTrueSet = myValue == 'true';
有没有更好的方法可以做到这一点?
Do:
var isTrueSet = (myValue == 'true');
您可以使用身份运算符(===)来使其更严格,当比较的变量具有不同类型时,它不会进行任何隐式类型转换,而不是相等运算符(==)。
===
==
var isTrueSet = (myValue === 'true');
Don’t:
您可能 应谨慎使用这两种方法 来满足您的特定需求:
var myBool = Boolean("false"); // == true var myBool = !!"false"; // == true
任何不是空字符串的字符串都将true通过使用它们来求值。尽管它们是我可以想到的与布尔转换有关的最干净的方法,但我认为它们并不是您想要的。
true