运算符 === 和 ||
Operators === and ||
我想知道,这些完全一样吗:
var a = something1.something2 === undefined ? 1 : something1.something2;
var b = something1.something2 || 1;
没有。在第一个中,something1.something2
必须 为 undefined
才能获得值 1
。在第二个中,它只需要是假的。有很多 falsy values:0
、""
、NaN
、null
、undefined
,当然还有 false
。
不,他们不是。
如果您为 something1.something2
取值 0
,那么在第一种情况下 return 的值是 0
。
第二种情况returns 1
,因为0
的falsy值。
我想知道,这些完全一样吗:
var a = something1.something2 === undefined ? 1 : something1.something2;
var b = something1.something2 || 1;
没有。在第一个中,something1.something2
必须 为 undefined
才能获得值 1
。在第二个中,它只需要是假的。有很多 falsy values:0
、""
、NaN
、null
、undefined
,当然还有 false
。
不,他们不是。
如果您为 something1.something2
取值 0
,那么在第一种情况下 return 的值是 0
。
第二种情况returns 1
,因为0
的falsy值。