Javascript OR运算符产生意外结果

时间:2015-03-18 20:36:00

标签: javascript

我的问题非常自我解释。

var data = {
   email: 'rick@james.drugs',
   alias: 'Rick'
};

var input = 'Rick';

// Want this to be false but is equating to true
console.log(data.email !== input || data.alias !== input); 

查看此示例。

http://jsbin.com/lenixu/4/

为什么OR运算符无法在此处运行?

2 个答案:

答案 0 :(得分:2)

关注data.email !== input。当然这是真的......'rick@james.drugs'和'Rick'不一样。你的“或”运算符在这里看到这些陈述中的任何一个都是真实的。一旦找到一个真实的声明,它就会返回true,无论其他人是否都是假的。

答案 1 :(得分:0)

如果边上的任何条件为真,则逻辑OR(||运算符)返回true。在您的示例中,data.email!== input返回true,因此整个条件也返回true。

如果您希望此条件在其任何一方出现错误时返回false,则应使用逻辑AND(&&运算符)。