在JavaScript中,如何匹配0和空字符串,而不是0和未定义,以及不是0和null?
因此,基本上,当使用在JavaScript中,如何匹配0和空字符串,而不是0和未定义,以及不是0和null?,javascript,equality,Javascript,Equality,因此,基本上,当使用0和空字符串(“”)进行相等性测试时,我希望程序返回true。然后,我可以毫无错误地使用以下内容: 0 == ""; // true 但我不想匹配: 0 == null 0 == undefined "" == null "" == undefined 我希望它们都返回false。这怎么可能?我不认为这有一个操作符,所以有没有一种方法我可以改变它们的值,使它以某种方式工作 function Equals(a,b) { if(a===b || (a===0 &
0
和空字符串(“”)进行相等性测试时,我希望程序返回true
。然后,我可以毫无错误地使用以下内容:
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;
}
你可以看看这个例子。答案是“不是真的”
你不能让他们像那样互相对抗,并期望它起作用。使用
|
并使用两个语句,但使用==
,而不是=
double运算符将尝试转换为不同的类型。三重运算符要求它们是相同的类型
0 == "" // true
0 === "" // false
(testValue === 0 || testValue === "") // will return false for undefined/null/NaN/false
你想干什么?有一个函数可以返回您想要的,或者您需要使现有代码(使用
=
)表现不同吗?刚刚在Chrome开发工具上测试过,您的最后4个语句确实返回false,第一个语句确实返回true。与Chuck Norris相比,每个人都等于零。@Thilo检查一下,每个人和每个类型。
0 == "" // true
0 === "" // false
(testValue === 0 || testValue === "") // will return false for undefined/null/NaN/false