这是我的代码。

function getVowelCount(str) {
 let array = str.split("");
 let vowelCount = array.reduce((acc, curr) => {
   if (curr === 'a' || curr === 'e' || curr === 'i' || curr === 'o' || curr === 'u') {
     acc++
   } return acc
 }, 0);
 return vowelCount
}


我是编码的新手,并且已经开始使用Javascript。有人能解释为什么我不能在if语句中使用"(curr === 'a' ||'e' || 'i' || 'o' || 'u')"吗?我以为可以这样处理: “如果当前值为'a'或'e'或'i'等...

谢谢。

最佳答案

===的操作顺序比||高。
相等顺序的运算符从左到右进行评估。

(有关完整订单,请参见mdn)。

所以curr === 'a' ||'e' || 'i' || 'o' || 'u'等效于

(((((curr === 'a') ||'e') || 'i') || 'o') || 'u')

可以减少到curr === 'a' ? true : 'e'

关于javascript - 有人可以向我解释逻辑“或”运算符的范围如何在Javascript中工作吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/60118025/

10-11 02:24