Javascript:false || undefined vs undefined || 假

Mic*_*nov 4 javascript undefined logical-operators

对"||"的行为有什么解释 运算符(逻辑OR),在JavaScript中使用它falseundefined在两侧使用它?

1)

> false || undefined
undefined
Run Code Online (Sandbox Code Playgroud)

2)

> undefined || false
false
Run Code Online (Sandbox Code Playgroud)

Max*_*ant 8

逻辑OR运算符是不可交换的像+,*等,返回第一个表达式,其可被转化成true.(来源Mozilla Doc)

  1. false || undefined,false不能true按定义转换(因为它是相反的),所以它返回第二个操作数(undefined)

  2. undefined || false,undefined是一个值,但false在Javascript中考虑,因此逻辑运算符计算第二个操作数并返回false(因为两个操作数都为假).