我的问题非常自我解释。
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);
查看此示例。
为什么OR运算符无法在此处运行?
答案 0 :(得分:2)
关注data.email !== input
。当然这是真的......'rick@james.drugs'和'Rick'不一样。你的“或”运算符在这里看到这些陈述中的任何一个都是真实的。一旦找到一个真实的声明,它就会返回true,无论其他人是否都是假的。
答案 1 :(得分:0)
如果边上的任何条件为真,则逻辑OR(||运算符)返回true。在您的示例中,data.email!== input返回true,因此整个条件也返回true。
如果您希望此条件在其任何一方出现错误时返回false,则应使用逻辑AND(&&运算符)。