0 && {} 等于多少,有多少人的答案是"false"的?

263 阅读1分钟
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的值。