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>