一尘不染

如何在JavaScript中将字符串转换为布尔值?

javascript

我可以将表示布尔值(例如,“ true”,“ false”)的字符串转换为JavaScript中的固有类型吗?

我有一个隐藏的HTML表单,可根据用户在列表中的选择进行更新。此表单包含一些表示布尔值的字段,并使用内部布尔值动态填充。但是,一旦将此值放入隐藏的输入字段中,它将成为一个字符串。

确定字段的布尔值(将其转换为字符串后)的唯一方法是依赖于其字符串表示形式的文字值。

var myValue = document.myForm.IS_TRUE.value;
var isTrueSet = myValue == 'true';

有没有更好的方法可以做到这一点?


阅读 277

收藏
2020-04-25

共1个答案

一尘不染

Do:

var isTrueSet = (myValue == 'true');

您可以使用身份运算符(===)来使其更严格,当比较的变量具有不同类型时,它不会进行任何隐式类型转换,而不是相等运算符(==)。

var isTrueSet = (myValue === 'true');

Don’t:

您可能 应谨慎使用这两种方法 来满足您的特定需求:

var myBool = Boolean("false");  // == true

var myBool = !!"false";  // == true

任何不是空字符串的字符串都将true通过使用它们来求值。尽管它们是我可以想到的与布尔转换有关的最干净的方法,但我认为它们并不是您想要的。

2020-04-25