JavaScript 中的 (' ' || false) 和 (false || ' ') 有什么区别?

What's the difference between ( ' ' || false) and (false || ' ' ) in JavaScript?

developer.mozilla网站上有一些例子展示了逻辑或运算符的不同用法,但这两个例子引起了我的注意,它们在这里:

o8 = ''    || false      // f || f returns false
o9 = false || ''         // f || f returns ""

为什么这两个 return 不同的结果?我预计它们都是 return false。

所有变量都falsy, so during each evaluation, because the first operand (left side) is coalesced to a falsy value, the operand on the right side of the ||将被使用。

参见同一页:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Logical_OR

expr1 || expr2

If expr1 can be converted to true, returns expr1; else, returns expr2.