1 <!DOCTYPE html>
2 <html>
3 <head>
4 <meta charset="utf-8">
5 <title></title>
6 <script type="text/javascript">
7 /*
8 逻辑运算符
9 1.!非
10 对于非布尔值,会将其转换为布尔值,再操作
11 所以我们可以利用该特点,将一个其他数据类型转换为布尔值
12 原理和Boolean()一样
13 */
14 var b=10;
15 b=!!b;
16 console.log(typeof b);//true
17
18 /*
19 2.&&与
20 两个值中只要有一个值为false就返回false,否则返回true
21 JS中,如果第一个值为false则不会看第二个值
22 */
23 false&&alert("hi~");//不会出来hi
24
25 /*
26 3.||或
27 两个值中只要有一个值为true就返回true,否则返回false
28 JS中,如果第一个值为true则不会看第二个值
29 */
30
31 /*
32 && || 非布尔值的情况
33 对于非布尔值进行与或运算时,
34 会先将其转换为布尔值,然后再运算,并返回原值,|| &&同时出现,&&优先级高于||
35
36 与运算 如果两个值都为true,则返回后边的,无论后面的是true还是false
37 如果两个值都为false,则返回前面的
38
39 或运算
40 如果第一个值为true,则直接返回第一个值
41 如果第一个值为false,则返回第二个值
42 */
43 console.log(2&&8);//8
44 console.log(-2&&6);//6
45 console.log(0&&7);//0
46 console.log(NaN&&0);//NaN;
47 console.log(0&&NaN);//0
48 </script>
49 </head>
50 <body>
51 </body>
52 </html>