JavaScript 逻辑运算符 || 和 &&

来源:互联网 发布:js display none 编辑:程序博客网 时间:2024/05/19 09:11

JavaScript 逻辑运算符 || 和 &&

一. 逻辑运算的 短路 原则

  • 逻辑表达式从左到右进行计算, 如果第一个条件能够决定最终结果, 那就没有必要计算后面的条件.
    • false && (任意表达式) = false
    • true || (任意表达式) = true

二. 运算符结果图

  • 逻辑与 AND运算符 : && (两个表达式有一个为false, 则为false.)
运算数1 运算数2 结果 true true true true false false false true false false false false


  • 逻辑或 OR运算符 : || (两个表达式有一个为true, 则为true.)
运算数1 运算数2 结果 true true true true false true false true true false false false


三. 运算符 ( 例 )

console.log(0 || 1);       // 1      (false || true)console.log(2 || 1);       // 2      (true || true)console.log("a" || 1);     // a      (true || true)console.log("" || 1);      // 1      (false || true)console.log("a" || 0);     // a      (true || false)console.log("a" || "b");   // a      (true || true)console.log("" || 0);      // 0      (false || false)console.log(0 || "");      // "" 空  (false || false)
console.log("" && 1);      // "" 空  (false && true)console.log("" && 0);      // "" 空  (false && false)console.log("a" && 1);     // 1      (true && true)console.log("a" && 0);     // 0      (true && false)console.log("a" && "");    // ""     (true && false)console.log(0 && "a");     // 0      (false && true)console.log(0 && "");      // 0      (false && false)

四. 运算符总结 :

  • 只要 || 前面结果为false, 无论 || 后面的结果是true还是false, 返回的都是 || 后面的结果.
  • 只要 || 前面结果为true, 无论 || 后面的结果是true还是false, 返回的都是 || 前面的结果.
  • 只要 && 前面结果为false, 无论 && 后面的结果是true还是false, 返回的都是 && 前面的结果.
  • 只要 && 前面结果为true, 无论 && 后面的结果是true还是false, 返回的都是 && 后面的结果.

五. “假值” 与 “真值”

  • JavaScript中有”假值”有:
    • false
    • null
    • undefined
    • 0
    • “” (空字符串)
    • NaN
  • JavaScript中有”真值”有:
    • 除了以上6个为”假”以外, 其它都为”真”.
    • 包括数组, 正则, 函数, 对象……
    • 包括 “0”, “null”, “false”, {}, [] 都是”真值”
    • 非零数字, 非空字符串也是”真值”

六. 关于 && 与 || 的优先级

console.log(2 || "a" && 3); //2 (先返回 && 结果再返回 || 的结果)

— 这说明 && 的优先级要高于 || 的.

1 0