一尘不染

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

javascript

我可以将表示布尔值的字符串(例如,’true’、’false’)转换为 JavaScript 中的内在类型吗?

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

一旦将字段转换为字符串,我能找到确定字段布尔值的唯一方法是依赖于其字符串表示的文字值。

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

有没有更好的方法来实现这一点?


阅读 141

收藏
2022-01-21

共1个答案

一尘不染

Do:

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

使用恒等运算符 ( ===),当比较变量具有不同类型时,它不会进行任何隐式类型转换。


Don’t:

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

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

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

任何不是空字符串的字符串都将true通过使用它们来评估。尽管它们是我能想到的关于布尔转换的最简洁的方法,但我认为它们不是您想要的。

2022-01-21