javascript逻辑与(&&)

 1 <!DOCTYPE html>
 2 <html lang="en">
 3 <head>
 4     <meta charset="UTF-8">
 5     <meta name="viewport" content="width=device-width, initial-scale=1.0">
 6     <meta http-equiv="X-UA-Compatible" content="ie=edge">
 7     <title>javascript逻辑与</title>
 8      <!-- 
 9         逻辑与(&&)个人理解:
10         前提条件:
11         -逻辑与的判定顺序:从左到右;
12         -只要遇到假/null/undefined/NaN就不会再往下判定。直接返回第一个假/null/undefined/NaN的值
13         -全真时返回最后一个真的值
14         1)操作数都是布尔值
15          全真时:返回true
16          1假或多假:返回false
17         2)操作数为多类型混合(表达式、布尔值等其他类型)
18          1假/多假/全假:返回第一个假
19          全真:返回最后一个真
20         3)特殊情况:操作数为null/undefined/NaN
21          只要含有null/undefined/NaN,就会返回null/undefined/NaN;
22          如果null/undefined/NaN同时存在,则返回null/undefined/NaN中的第一个。
23     -->
24 </head>
25 <body>
26     <script>
27         var a=10,b="10",c=20,d="",e=0,f="dd",g;
28         /* 逻辑与:布尔型 */
29         console.log(a==b && a<c);//true
30         console.log(a==b && a>c);//false
31         /* 逻辑与:混合型 */
32         console.log(e && a);//0,第一个操作数e假,返回第一个,e
33         console.log(a && d);//"",第一个操作数a真,返回第二个,d
34         console.log(a && b && c);//20,ac都为true,返回最后一个,c
35         console.log(a && d && e);//"",a真,d假,e假,返回第一个假,d=""
36         console.log(a && b && c);//20,全真,返回最后一个真
37         console.log(null && a && b && c);//null
38         console.log((a-f) && a && b);//NaN
39         console.log(g && a && b);//undefined
40         console.log(NaN && null && defined);//NaN,这三个谁是第一返回谁
41     </script>
42 </body>
43 </html>
原文地址:https://www.cnblogs.com/vinson-blog/p/11989494.html