0

所以基本上,我想让程序true在放置一个相等测试0和一个空字符串(“”)时返回。然后,我可以使用以下内容而不会出现任何错误:

0 == ""; // true

但我不想匹配:

0 == null
0 == undefined
"" == null
"" == undefined

我希望他们都回来false。这怎么可能?我不认为有一个运营商,所以有没有办法我可以改变他们的价值观,以某种方式使这项工作?

4

3 回答 3

1
function Equals(a,b) {

   if(a===b || (a===0 && b === "") || (a==="" && b === 0)) return true;
    return false;

}

您可以查看jsfiddle示例。

于 2012-09-28T07:44:24.403 回答
1
function eq(value) {
    return (value === 0 || value === "");
}
于 2012-09-28T07:44:42.887 回答
0

答案是“不是真的”。

你不能像那样把它们放在一起,并期望它起作用。
使用||和 使用两个语句,但使用===, 而不是==.

双重运算符将尝试转换为不同的类型。
三元运算符要求它们是同一类型。

0 == "" // true
0 === "" // false


(testValue === 0 || testValue === "") // will return false for undefined/null/NaN/false
于 2012-09-28T07:46:04.020 回答