当&&和|| 连接语句时,两边的语句会转化为布尔类型(Boolean),然后再进行运算,具体的运算规则如下:
    1.&&
    1.1两边条件都为true时,结果才为true;
    1.2如果有一个为false,结果就为false;
    1.3当第一个条件为false时,就不再判断后面的条件
    注意:当数值参与逻辑与运算时,结果为true,那么会返回的会是第二个为真的值;如果结果为false,返回的会是第一个为假的值。
    2.||
    2.1只要有一个条件为true时,结果就为true;
    2.2当两个条件都为false时,结果才为false;
    2.3当一个条件为true时,后面的条件不再判断
    注意:当数值参与逻辑或运算时,结果为true,会返回第一个为真的值;如果结果为false,会返回第二个为假的值;
    3.!
    3.1当条件为false时,结果为true;反之亦然。

    1. <!DOCTYPE html>
    2. <html lang="en">
    3. <head>
    4. <meta charset="UTF-8">
    5. <title>demo</title>
    6. <script>
    7. console.log( 5 && 4 );//当结果为真时,返回第二个为真的值4
    8. console.log( 0 && 4 );//当结果为假时,返回第一个为假的值0
    9. console.log( 5 || 4 );//当结果为真时,返回第一个为真的值5
    10. console.log( 0 || 0 );//当结果为假时,返回第二个为假的值0
    11. console.log((3||2)&&(5||0));//5
    12. console.log(!5);//false
    13. </script>
    14. </head>
    15. <body>
    16. </body>
    17. </html>

    补充:逻辑与的优先级是高于逻辑或的;
    比如console.log(3||2&&5||0),会先算2&&5的值为5,然后再3||5——3,最后再3||0——3,所以最终结果为3.