提问人: 提问时间:4/14/2011 最后编辑:acdcjunior 更新时间:12/9/2021 访问量:57702
如何在 Javascript 中比较字符串和布尔值?
How do I compare string and boolean in Javascript?
问:
我从服务器获得了 Json。我的回答是,但它是 Json,所以它的浏览器类型是而不是 ."false"
bool
String
bool
因此,如果我在想检查时运行,那么它们就不起作用。(!data)
"false" == false
那么我该如何在JavaScript中解析呢?bool
String
"true" == true
和。然后代码可以检查它是什么 [ 和"false" == false
(!data)
true
false
]
答:
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 以及 s it,将其转换为布尔值eval
评论
尝试表达式数据 == “true”
测试:
data = “false” -- 值将为 false
date = “true” -- 值将为 true
此外,修复您的 JSON。JSON 可以很好地处理布尔值。
我只会明确检查字符串."true"
let data = value === "true";
否则,您可以使用 JSON.parse()
将其转换为原生 JavaScript 值,但如果您知道它只是字符串或您将收到,则会造成很大的开销。"true"
"false"
评论
'false'
如果它只是一个 json “false”/“true”,你可以使用
if(! eval(data)){
// Case when false
}
如果您将代码限制为仅接受来自服务器的 JSON 数据,并且始终 jsonParse 或将其评估为 JS 对象(类似于 jquery getJSON,它会更干净。它只接受JSON响应,并在传递给回调函数之前将其解析为对象)。
这样一来,您不仅可以将布尔值作为 boolean-from-server 获得布尔值,而且还会保留所有其他数据类型,然后您可以使用例程表达式语句而不是特殊语句。
祝您编码愉快。
我认为您需要查看JSON数据是如何生成的。你绝对可以在 JSON 中有一个普通的 JS 布尔值 false。
{ “value1” : false, “value2” : true }
- 如果其中一个操作数是布尔值,则将布尔操作数转换为 1(如果为 true)和 +0(如果为 false)。
- 将数字与字符串进行比较时,请尝试将字符串转换为数值。
例子:
true == "true"; // 1 == NaN → false
true == "1"; // 1 == 1 → true
false == "false"; // 0 == NaN → false
false == ""; // 0 == 0 → true
false == "0"; // 0 == 0 → true
var data = true;
data === "true" //false
String(data) === "true" //true
这工作正常。
if(data+''=='true'){
alert('true');
}
通过附加空白字符串将布尔值转换为字符串。然后与 Stringobject 进行比较。
下一个:C# 逻辑问题
评论