用JavaScript编写一个bool

Pat*_*rik 11 javascript

可能重复:
如何在JavaScript中将字符串转换为布尔值?

嗨,

如何在Bool中转换字符串?

示例:"False"以bool false

我的JavaScript需要这个.

谢谢你的帮助 !

Poi*_*nty 26

你可以这样做:

var bool = !!someString;
Run Code Online (Sandbox Code Playgroud)

如果你这样做,你会发现字符串常量"False"实际上是布尔值true.为什么?因为那些是Javascript中的规则.任何不是undefined,null空字符串("")或数字零都被考虑true.

如果你想为字符串强加你自己的规则(一个可疑的想法,但它是你的软件),你可以编写一个带有查找表的函数来返回值:

function isStringTrue(s) {
  var falses = { "false": true, "False": true };
  return !falses[s];
}
Run Code Online (Sandbox Code Playgroud)

也许.

编辑 - 修正错字 - 谢谢@Patrick

  • 为什么要调用一个方法呢?你可以这样做`var bools = {"false":false,"False":false,"true":true,"True":true};````var result = bools ["False"];` (2认同)

Jon*_*Jon 24

你可以使用这样的东西为字符串提供你自己的自定义"是真的"测试,同时保持其他类型比较不受影响的方式:

function isTrue(input) {
    if (typeof input == 'string') {
        return input.toLowerCase() == 'true';
    }

    return !!input;
}
Run Code Online (Sandbox Code Playgroud)


El *_*oco 9

function castStrToBool(str){
    if (str.toLowerCase()=='false'){
       return false;
    } else if (str.toLowerCase()=='true'){
       return true;
    } else {
       return undefined;
    }
}
Run Code Online (Sandbox Code Playgroud)

......但我认为Jon的答案更好!