javascript - &&的使用方法,|| 一起
问题描述
我不知道为什么以下返回错误。
var pets = ['cat', 'dog', 'bat'];
console.log(pets.includes(('cat' && 'monkey') || 'bat' ));
由于 'bat' 在宠物数组中,我认为这会返回 true。
知道为什么这不起作用吗?
解决方案
那是因为('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'));
推荐阅读
- apache-spark - Spark,DataSource V2 API:写入自定义数据源时如何分区数据?
- spring - 如何使用 openapi-generator (spring) 检索未指定的标头
- python - Python 请求模块:以块的形式发布非常大的文件以监控进度
- firebase - 如何避免 Firebase 托管部署超时错误
- php - 在 WooCommerce 中获取顶级父产品类别作为正文类
- python - Django HTML 模板无法加载 CSS 文件
- asp.net - 如何在 windows iis 上设置 asp.net web 应用程序
- javascript - 当输入类型=“日期”中的某些内容发生更改时,是否可以触发输入/更改事件?
- reactjs - 忽略 React Hook "React.useEffect" 可能会执行多次
- javascript - Old Edge - 如何创建“图像”对象?