false || (console.log('s'));

解决方案 »

  1.   

    https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Logical_Operators?redirectlocale=en-US&redirectslug=JavaScript%2FReference%2FOperators%2FLogical_OperatorsFor example, the following two functions are equivalent.
    function shortCircuitEvaluation() {
      doSomething() || doSomethingElse()
    }function equivalentEvaluation() {
      var flag = doSomething();
      if (!flag) {
        doSomethingElse();
      }
    }
      

  2.   

    && 的優先級高于 || (true && false && console.log('2')) || console.log('s');
      

  3.   

    优先级明白,但是还是不明白执行的逻辑.
    是否是这样:
    1. 第一个表达式为true,因此执行第二个表达式;
    2. 第二个表达式为false,因此不执行第三个表达式.既然第三个表达式都停止执行了,为什么第4个表达式会执行呢?
      

  4.   

    执行的逻辑.
    是否是这样:
    1. 第一个表达式为true,因此执行第二个表达式;
    2. 第二个表达式为false,因此不执行第三个表达式.既然第三个表达式都停止执行了,为什么第4个表达式会执行呢?
      

  5.   

    执行的逻辑.
    是否是这样:
    1. 第一个表达式为true,因此执行第二个表达式;
    2. 第二个表达式为false,因此不执行第三个表达式.既然第三个表达式都停止执行了,为什么第4个表达式会执行呢?
      

  6.   

    (true) && (false) && (console.log('2')) || (console.log('s'));上面这个表达式可以分成两部分
    第一部分:
    (true) && (false) && (console.log('2'))第二部分:
    (console.log('s'))前一部分的结果为false,所以执行后面一部分。当&&连接两个表达式时,当前面的为false时终止后面表达式的执行,如果前面的表达式为true则继续执行后面的表达式;如果是||连接的两个表达式前一个为false时,继续执行后面的表达式,前面一个为true,则终止后面表达式执行。
      

  7.   

    老师好,请问根据什么将表达式分为了2部分?上面的会员都说了啊 && 的优先级大于 || ,所以 && 相连的先进行逻辑运算,然后进行 || 相连的表达式的逻辑运算。
      

  8.   

    很不明白怎么会关系到优先级(console.log('s')) || (true) && (false) && (console.log('2')) || (console.log('3'));
      

  9.   

    关键是你不该用console.log.
    既然关贴了,就不说答案。
      

  10.   


    看了你这个评论,才发现没注意到LZ的问题。(true) && (false) && (console.log('2')) 这句返回的是undefined自然要执行后面的。