为什么这段代码返回 true 而不是 false


const str = "asdfcvb";
const result = str.split("").every((e) => {
    return e==='a'||'b'});
console.log(result);

我希望 str.split("") 返回一个数组,并且每个方法都会检查数组中的每个元素是否等于'a'或'b',这应该返回false,但它返回true

因为 e==='a'||'b'意味着((e==='a')||'b')
在这种e !== 'a'情况下,它会返回'b'Javascript 中的every真值,因此方法从每个术语中获取真值,然后结果为真。
您可以使用以下内容来实现您想要的

const result = str.split("").every((e) => {
    return (e==='a') || (e==='b')
});