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 -只要遇到真就不再往下,直接返回第一个真的值;
13 -在遇到真之前,会一直往下判定,如果最后一个也是假/null/undefined/NaN,就返回最后一个假/null/undefined/NaN的值
14 1)操作数都为布尔值
15 1真/多真/全真:返回true
16 全假:返回false
17 2)操作数为多类型混合(表达式、布尔值等其他类型)
18 1真/多真/全真:返回第一个真的值
19 全假/null/undefined/NaN:返回最后一个值
20 -->
21 </head>
22 <body>
23 <script>
24 var a=1,b="2",c=0,d="abc",e="",f,g=a-d;
25 /* 逻辑或:布尔型 */
26 console.log((a-b) || (a-abc));//-1,a-b为true,不再往下判定
27 console.log(a>10 || a<10);//true,a>10假,a<10真,1真返回true
28 /* 逻辑或:混合型 */
29 console.log(c || a || b || d);//1,返回第一个真a=1
30 console.log(c || e || null || undefined || g);//NaN,全假返回最后一个假
31 </script>
32 </body>
33 </html>