1 <!DOCTYPE html>
2 <html>
3 <head>
4 <meta charset="UTF-8">
5 <title></title>
6
7 <script type="text/javascript">
8
9 /*
10 * && || 非布尔值的情况
11 *
12 * - 对于非布尔值进行与或运算时,会先将其转换为布尔值,然后再运算,并且返回原值
13 *
14 * - 与运算:
15 * - 如果第一个值为true,则必然返回第二个值
16 * - 如果第一个值为false,则直接返回第一个值
17 *
18 * - 或运算
19 * - 如果第一个值为true,则直接返回第一个值
20 * - 如果第一个值为false,则返回第二个值
21 *
22 */
23
24 //true && true
25 //与运算:如果两个值都为true,则返回后边的,谁在后边返回谁
26 var result = 5 && 6;
27 console.log("result = "+result); //6
28
29
30 //与运算:如果两个值中有false,则返回靠前的false
31 //false && true
32 result = 0 && 2;
33 console.log("result = "+result); //0
34
35 result = 2 && 0;
36 console.log("result = "+result); //0
37
38
39 //false && false
40 result = NaN && 0;
41 result = 0 && NaN;
42 console.log("result = "+result); //0
43
44 //-----------------------------------------------------------------------------
45
46 //true || true
47 //如果第一个值为true,则直接返回第一个值
48 result = 2 || 1;
49 console.log("result = "+result); //2
50
51 result = 2 || NaN;
52 console.log("result = "+result); //2
53
54 result = 2 || 0;
55 console.log("result = "+result); //2
56
57
58 //如果第一个值为false,则直接返回第二个值
59 result = NaN || 1;
60 console.log("result = "+result); //1
61
62 result = NaN || 0;
63 console.log("result = "+result); //0
64
65 result = "" || "hello";
66 console.log("result = "+result); //hello
67
68 result = -1 || "你好";
69 console.log("result = "+result); //-1
70
71
72 </script>
73
74 </head>
75 <body>
76 </body>
77 </html>