运算符 === 和 ||

Operators === and ||

我想知道,这些完全一样吗:

var a = something1.something2 === undefined ? 1 : something1.something2;
var b = something1.something2 || 1;

没有。在第一个中,something1.something2 必须 undefined 才能获得值 1。在第二个中,它只需要是假的。有很多 falsy values0""NaNnullundefined,当然还有 false

不,他们不是。

如果您为 something1.something2 取值 0,那么在第一种情况下 return 的值是 0

第二种情况returns 1,因为0的falsy值。