1 <!DOCTYPE html>
2 <html>
3 <head>
4 <meta charset="UTF-8">
5 <title></title>
6 <script type="text/javascript">
7
8 /*
9 * JS中为我们提供了三种逻辑运算符
10 * ! 非
11 * - !可以用来对一个值进行非运算
12 * - 所谓非运算就是指对一个布尔值进行取反操作,
13 * true变false,false变true
14 * - 如果对一个值进行两次取反,它不会变化
15 * - 如果对非布尔值进行运算,则会将其转换为布尔值,然后再取反
16 * 所以我们可以利用该特点,来将一个其他的数据类型转换为布尔值
17 * 可以为一个任意数据类型取两次反,来将其转换为布尔值,原理和Boolean()函数一样
18 *
19 * && 与
20 * - &&可以对符号两侧的值进行与运算并返回结果
21 * - 运算规则
22 * - 两个值中只要有一个值为false就返回false,
23 * 只有两个值都为true时,才会返回true
24 * - JS中的“与”属于短路的与,
25 * 如果第一个值为false,则不会看第二个值
26 *
27 * || 或
28 * - ||可以对符号两侧的值进行或运算并返回结果
29 * - 运算规则:
30 * - 两个值中只要有一个true,就返回true
31 * 如果两个值都为false,才返回false
32 * - JS中的“或”属于短路的或
33 * 如果第一个值为true,则不会检查第二个值
34 */
35
36 var a = false;
37 //对a进行非运算
38 a = !a;
39 console.log(a);//true
40
41
42 //如果对非布尔值进行运算,则会将其转换为布尔值,然后再取反
43 var b = 10;
44 b = !!b;
45 console.log(b); //true
46 console.log(typeof b); //boolean
47
48 //------------------------------------------------------------------------
49
50 //如果两个值都是true则返回true
51 var result = true && true;
52 console.log(result); //true
53
54 //只要有一个false,就返回false
55 result = true && false;
56 result = false && true;
57 result = false && false;
58 console.log(result); //false
59
60 //第一个值为true,会检查第二个值
61 true && alert("看我出不出来!!");//可以弹窗
62
63 //第一个值为false,不会检查第二个值
64 false && alert("看我出不出来!!");//没有出现弹窗
65
66 //--------------------------------------------------------------------
67
68 //两个都是false,则返回false
69 result = false || false;
70 console.log("result = "+result);//false
71
72 //只有有一个true,就返回true
73 result = true || false;
74 result = false || true ;
75 result = true || true ;
76 console.log("result = "+result);//true
77
78
79 //第一个值为false,则会检查第二个值
80 false || alert("123"); //可以弹窗
81
82 //第一个值为true,则不再检查第二个值
83 true || alert("123"); //没有出现弹窗
84
85
86
87
88 </script>
89 </head>
90 <body>
91 </body>
92 </html>