所以基本上,我希望在使用true
和空字符串(“”)进行相等性测试时,程序返回0
。然后,我可以使用以下内容而不会出现任何错误:
0 == ""; // true
但我不想匹配:
0 == null
0 == undefined
"" == null
"" == undefined
我希望他们都返回false
。这怎么可能?我不认为这有一个操作符,所以有没有办法可以改变它们的值来使这个工作以某种方式工作?
答案 0 :(得分:1)
function Equals(a,b) {
if(a===b || (a===0 && b === "") || (a==="" && b === 0)) return true;
return false;
}
您可以查看jsfiddle示例。
答案 1 :(得分:1)
function eq(value) {
return (value === 0 || value === "");
}
答案 2 :(得分:0)
答案是“不是真的”。
你不能像那样把它们放在一起,并期望它起作用
使用||
并使用两个语句,但使用===
代替==
。
双重操作符将尝试转换为不同类型 三重算子要求它们是相同的类型。
0 == "" // true
0 === "" // false
(testValue === 0 || testValue === "") // will return false for undefined/null/NaN/false