0 && {}; // 0
解释:
- &&与||都为短路运算符;
- &&表示如果都为true,则返回最后一个转换为true的原值,如果其中有转换为false的值,则返回第一个转换为false的原值。
- ||表示如果都为false,则返回最后一个为false的原值,如果其中有转换为true的值,那么返回第一个转换为true的原值。
1 && 2 && 3 // 转换为布尔值都为true,则返回最后一个转换为true的原值 => 3
1 && 0 && 3 // 转换布尔值有存在false的情况,则返回第一个转换为false 的原值 => 0
1 || 2 || 3 //转换布尔值都为true,则返回第一个转换为true的原值 => 1
0 || null // 转换布尔值都为false,则返回最后一个转换为false的原值 => null
注意点: 返回的都是原值,并非布尔值。
总结一句话: "&&"找第一个布尔为false的值,"||" 找第一个布尔为true的值。