.jpg)
我可以将表示布尔值(例如,’true’, ‘false’)的字符串转换为JavaScript中的内在类型吗?
我在 HTML 中有一个隐藏的表单,该表单根据用户在列表中的选择进行更新。此表单包含一些表示布尔值的字段,并使用内部布尔值动态填充。但是,一旦将此值放入隐藏的输入字段中,它就会变成一个字符串。
一旦字段转换为字符串,我能找到确定字段布尔值的唯一方法是依赖于其字符串表示的文字值。
var myValue = document.myForm.IS_TRUE.value;
var isTrueSet = myValue == 'true';
有没有更好的方法来实现这一目标?

网友回答:
这个高投票的旧答案在技术上是正确的,但只涵盖了非常特定的场景,当您的字符串值为 EXACT 或 ."true""false"
传递给下面这些函数的无效 json 字符串将引发异常。
原答案:
怎么样?
JSON.parse("True".toLowerCase());
或使用 jQuery
$.parseJSON("TRUE".toLowerCase());

网友回答:
var isTrueSet = (myValue === 'true');
使用 标识运算符 (),当比较的变量具有不同的类型时,该运算符不会进行任何隐式类型转换。===
如果字符串为“true”,这将设置为布尔值,如果字符串为“false”或根本没有设置,则将设置为布尔值。isTrueSettruefalse
在根据特定需求使用以下两种方法时,您可能应该谨慎:
var myBool = Boolean("false"); // == true
var myBool = !!"false"; // == true
任何不是空字符串的字符串都将通过使用它们进行计算。尽管它们是我能想到的关于布尔转换的最干净的方法,但我认为它们不是您要找的。true

网友回答:
const stringToBoolean = (stringValue) => {
switch(stringValue?.toLowerCase()?.trim()){
case "true":
case "yes":
case "1":
return true;
case "false":
case "no":
case "0":
case null:
case undefined:
return false;
default:
return JSON.parse(stringValue);
}
}
模板简介:该模板名称为【我可以将表示布尔值(例如,’true’, ‘false’)的字符串转换为JavaScript中的内在类型吗?】,大小是暂无信息,文档格式为.编程语言,推荐使用Sublime/Dreamweaver/HBuilder打开,作品中的图片,文字等数据均可修改,图片请在作品中选中图片替换即可,文字修改直接点击文字修改即可,您也可以新增或修改作品中的内容,该模板来自用户分享,如有侵权行为请联系网站客服处理。欢迎来懒人模板【JavaScript】栏目查找您需要的精美模板。