首页 > 解决方案 > &&的使用方法,|| 一起

问题描述

我不知道为什么以下返回错误。

var pets = ['cat', 'dog', 'bat'];
console.log(pets.includes(('cat' && 'monkey') || 'bat' ));

由于 'bat' 在宠物数组中,我认为这会返回 true。

知道为什么这不起作用吗?

标签: javascriptarraysoperators

解决方案


那是因为('cat' && 'monkey') || 'bat'monkey. 它给出的原因monkey是因为'cat' && 'monkey'表达式计算monkey为 bothcat并且monkey被定义并&&用于两个定义的值,它采用第二个值,即monkey。并且当'monkey' || 'bat'被评估时,它给出了第一个值monkey,因为在这种情况下,这两个值也都被定义了,但是在||表达式中,它给出了第一个定义的值,monkey在这种情况下。

这就是解开的谜团,

pets.includes(('cat' && 'monkey') || 'bat');
//becomes
pets.includes('monkey'); //which is false

var pets = ['cat', 'dog', 'bat'];
console.log(('cat' && 'monkey') || 'bat');
console.log(pets.includes(('cat' && 'monkey') || 'bat'));


推荐阅读