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