在javascript中将字符串转换为布尔值

use*_*348 28 javascript

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

我尝试使用构造函数Boolean("false"),但它总是如此.

Ais*_*ina 75

我会在这里使用一个简单的字符串比较,据我所知,没有内置函数可以做你想做的事情(除非你想诉诸eval......你没有).

var myBool = myString == "true";
Run Code Online (Sandbox Code Playgroud)

  • 在2014年阅读此内容,并且仍然对此解决方案的简单性感到惊讶. (6认同)
  • @EugenMihailescu true不是字符串值,这就是问题所在. (5认同)
  • 这行不通!只需初始化 myString = true; 你会看到 myBool 返回 false !!! (2认同)

iam*_*box 11

我想回答这个问题,以改进已接受的答案.

为了提高性能,在实际情况下,表单输入可能会传递"true"或"false"等值,此方法将产生最佳结果.

function stringToBool(val) {
    return (val + '').toLowerCase() === 'true';
}
Run Code Online (Sandbox Code Playgroud)

JSPerf

在此输入图像描述


Roh*_*ula 10

你也可以使用JSON.parse()函数

JSON.parse("true")返回true(布尔值)

JSON.parse("false")返回false(布尔值)

  • 如果有人将其作为解决方案实现,请记住,如果引用`undefined`属性,将导致`#Saxax:在位置0的JSON中出现意外的令牌u.请务必检查是否可以先解析该值. (4认同)

Aru*_*n C 5

实际上你不明白Boolean方法的含义。如果变量不为null或空,它总是返回true。

var variable = some value; Boolean(variable);

如果我的变量有一些值,那么它就会 return true 否则 return false 你不能像你想象的那样使用布尔值。