如何在Javascript中比较字符串和布尔值?

| 我从服务器获得了Json
\"false\"
。我的回答是
bool
,但它是Json,因此它在浏览器中的类型是
String
,而不是
bool
。 因此,如果我每当要检查
\"false\" == false
时都运行
(!data)
,则它们将不起作用。 那么,如何在JavaScript中从
String
解析
bool
\"true\" == true
\"false\" == false
。然后代码
(!data)
可以检查它是什么[
true
false
]     
已邀请:
我只需要显式检查字符串
\"true\"
let data = value === \"true\";
否则,您可以使用
JSON.parse()
将其转换为本地JavaScript值,但是如果您知道仅会收到字符串
\"true\"
或ѭ0receive,则将产生很多开销。     
\“如果操作数之一为布尔值,则布尔值操作数为true时将转换为1,否则为+0。\”(来自MDN比较运算符页面) 例子:
true == \"true\"; //false
true == \"1\"; //true
false == \"false\"; //false
false == \"\"; //true
false == \"0\"; //true
    
var data = true;
data === \"true\" //false
String(data) === \"true\" //true
这很好。     
尝试表达式数据== \“ true \” 测试: data = \“ false \”-值将为false date = \“ true \”-值将为true 另外,修复您的JSON。 JSON可以很好地处理布尔值。     
如果它只是一个json \“ false \” / \“ true \”,则可以使用,
if(! eval(data)){
    // Case when false
}
如果将代码限制为仅接受来自服务器的JSON数据,并且始终将jsonParse或eval评估为JS对象(类似于jquery getJSON那样,它将仅接受JSON响应并将其解析为对象,然后再传递给回调函数) )。 这样,您不仅会从服务器获取布尔值,而且还会保留所有其他数据类型,然后就可以使用例程表达式而不是特殊表达式了。 编码愉快。     
我认为您需要查看如何生成JSON数据。您绝对可以在JSON中使用普通的JS布尔值false。 {\“ value1 \”:false,\“ value2 \”:true}     
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 \”语句-测试以在代码中查找是非,然后用“ 22”将其转换为布尔值     
if(data+\'\'==\'true\'){
    alert(\'true\');
}  
通过附加空白字符串将布尔值转换为字符串。然后与Stringobject比较。     

要回复问题请先登录注册