我从服务器获得了Json "false"
。我的回复为bool
,但它是Json,因此浏览器类型为String
而不是bool
。
因此,如果我想检查(!data)
时运行"false" == false
,那么它们就无效了。
那么如何在JavaScript中解析bool
中的String
呢?
"true" == true
和"false" == false
。然后代码(!data)
可以检查它是什么[true
和false
]
答案 0 :(得分:13)
我只是明确检查字符串"true"
。
let data = value === "true";
否则您可以使用JSON.parse()
将其转换为原生JavaScript值,但如果您知道它只会收到您将收到的字符串"true"
或"false"
,则会产生大量开销。< / p>
答案 1 :(得分:9)
“如果其中一个操作数是布尔值,则布尔操作数如果为真,则转换为1,如果为假,则转换为+0。” (来自MDN Comparison Operators page)
示例:
true == "true"; //false
true == "1"; //true
false == "false"; //false
false == ""; //true
false == "0"; //true
答案 2 :(得分:7)
var data = true;
data === "true" //false
String(data) === "true" //true
这很好用。
答案 3 :(得分:4)
尝试表达式数据==“true”
试验:
data =“false” - 值为false
date =“true” - 值为true
另外,修复你的JSON。 JSON可以很好地处理布尔值。
答案 4 :(得分:4)
如果它只是一个json“false”/“true”,你可以使用,
if(! eval(data)){
// Case when false
}
如果你将代码限制为仅接受来自服务器的JSON数据,并且总是jsonParse或eval它到JS对象(类似于jquery getJSON的东西),它会更清晰。它只接受JSON响应并将其解析为传递给回调函数之前的对象)。
这样你不仅可以将boolean作为boolean-from-server,而且还会保留所有其他数据类型,然后你可以使用例程表达式语句而不是特殊语句。
快乐编码。
答案 5 :(得分:1)
我认为您需要了解如何生成JSON数据。你肯定可以在JSON中使用普通的JS布尔值假。
{“value1”:false,“value2”:true}
答案 6 :(得分:0)
String.prototype.revalue= function(){
if(/^(true|false|null|undefined|NaN)$/i.test(this)) return eval(this);
if(parseFloat(this)+''== this) return parseFloat(this);
return this;
}
来自:http://www.webdeveloper.com/forum/showthread.php?t=147389
实际上,你只需要函数中的第一个“if”语句 - 在代码中查找true或false,然后eval
将它转换为布尔值
答案 7 :(得分:0)
if(data+''=='true'){
alert('true');
}
通过附加空字符串将boolean转换为字符串。然后与Stringobject进行比较。
答案 8 :(得分:0)
要比较JavaScript中的字符串和布尔值,让我们看下面的示例。返回true:
false == "0"; //true
true == "1"; //true
false == ""; //true
以下内容返回false:
false == "false"; //false
true == "true"; //false
此外,也尝试以下示例:
var data = true;
data === "true" //false
String(data) === "true" //true