关于逻辑运算符 ,逻辑运算符用于测定变量或值之间的逻辑
在JavaScript中, || 和 && 都是逻辑运算符,用于在从左至右计算时,返回第一个可完全确定的“逻辑值”。
或 || 运算符。在 X||Y 的表达式中,首先计算 X 并将其解释执行为一个布尔值。
如果这个布尔值true,那么返回true(1),不再计算 Y ,因为“或”的条件已经满足。
如果这个布尔值为false,那么我们仍然不能知道 X||Y 是真是假,直到我们计算 Y ,并且也把它解释执行为一个布尔值。
因此, 0||1 的计算结果为true(1),同理计算 1||2 。
与 && 运算符。在 X&&Y 的表达式中,首先计算 X 并将其解释执行为一个布尔值。
如果这个布尔值为 false,那么返回 false(0),不再计算 Y ,因为“与”的条件已经失败。
如果这个布尔值为true,但是,我们仍然不知道 X&&Y 是真是假,直到我们去计算 Y ,并且也把它解释执行为一个布尔值。 .
不过,关于 && 运算符有趣的地方在于,当一个表达式计算为“true”的时候,那么就返回表达式本身。
这很好,虽然它在逻辑表达式方面计算为“真”,但如果你希望的话也可用于返回该值。这就解释了为什么,有些令人奇怪的是, 1 && 2返回 2,而不是你以为的可能返回 true 或 1。
console.log( 0 || 1 ); //1
console.log( 1 || 2 ); //1
console.log( 0 && 1 ); //0
console.log( 1 && 2 ); //2