0116 短路运算(逻辑中断):逻辑与、逻辑或

短路运算的原理:当有多个表达式(值)时,左边的表达式值可以确定结果时,就不再继续运算右边的表达式的值。

1.5.5.1 逻辑与

语法: 表达式1 && 表达式2

- 如果第一个表达式的值为真,则返回表达式2
- 如果第一个表达式的值为假,则返回表达式1
console.log( 123 && 456 );        // 456
console.log( 0 && 456 );          // 0
console.log( 123 && 456&& 789 );  // 789

1.5.5.2 逻辑或

语法: 表达式1 || 表达式2

- 如果第一个表达式的值为真,则返回表达式1
- 如果第一个表达式的值为假,则返回表达式2
 console.log( 123 || 456 );         //  123
 console.log( 0 ||  456 );          //  456
 console.log( 123 || 456 || 789 );  //  123
    demo
     // 1. 用我们的布尔值参与的逻辑运算  true && false  == false 
    // 2. 123 && 456  是值 或者是 表达式 参与逻辑运算? 
    // 3. 逻辑与短路运算  如果表达式1 结果为真 则返回表达式2  如果表达式1为假 那么返回表达式1
    console.log(123 && 456); // 456
    console.log(0 && 456); //  0
    console.log(0 && 1 + 2 && 456 * 56789); // 0
    console.log('' && 1 + 2 && 456 * 56789); // ''
    // 如果有空的或者否定的为假 其余是真的  0  ''  null undefined  NaN
    // 4. 逻辑或短路运算  如果表达式1 结果为真 则返回的是表达式1 如果表达式1 结果为假 则返回表达式2
    console.log(123 || 456); // 123
    console.log(123 || 456 || 456 + 123); // 123
    console.log(0 || 456 || 456 + 123); // 456

    // 逻辑中断很重要 它会影响我们程序运行结果思密达
    var num = 0;
    console.log(123 || num++);
    console.log(num); // 0
原文地址:https://www.cnblogs.com/jianjie/p/12130164.html