尚硅谷js---19、逻辑运算符
一、总结
一句话总结:
js逻辑运算符比如或(||)与(&&)都是短路的
JS中的“与”属于短路的与:如果第一个值为false,则不会看第二个值
JS中的“或”属于短路的或:如果第一个值为true,则不会检查第二个值
二、逻辑运算符
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 * 可以为一个任意数据类型取两次反,来将其转换为布尔值, 18 * 原理和Boolean()函数一样 19 * 20 * && 与 21 * - &&可以对符号两侧的值进行与运算并返回结果 22 * - 运算规则 23 * - 两个值中只要有一个值为false就返回false, 24 * 只有两个值都为true时,才会返回true 25 * - JS中的“与”属于短路的与, 26 * 如果第一个值为false,则不会看第二个值 27 * 28 * || 或 29 * - ||可以对符号两侧的值进行或运算并返回结果 30 * - 运算规则: 31 * - 两个值中只要有一个true,就返回true 32 * 如果两个值都为false,才返回false 33 * - JS中的“或”属于短路的或 34 * 如果第一个值为true,则不会检查第二个值 35 */ 36 37 //如果两个值都是true则返回true 38 var result = true && true; 39 40 //只要有一个false,就返回false 41 result = true && false; 42 result = false && true; 43 result = false && false; 44 45 //console.log("result = "+result); 46 47 //第一个值为true,会检查第二个值 48 //true && alert("看我出不出来!!"); 49 50 //第一个值为false,不会检查第二个值 51 //false && alert("看我出不出来!!"); 52 53 //两个都是false,则返回false 54 result = false || false; 55 56 //只有有一个true,就返回true 57 result = true || false; 58 result = false || true ; 59 result = true || true ; 60 61 //console.log("result = "+result); 62 63 //第一个值为false,则会检查第二个值 64 //false || alert("123"); 65 66 //第一个值为true,则不再检查第二个值 67 //true || alert("123"); 68 69 70 71 var a = false; 72 73 //对a进行非运算 74 a = !a; 75 76 //console.log("a = "+a); 77 78 var b = 10; 79 b = !!b; 80 81 //console.log("b = "+b); 82 //console.log(typeof b); 83 84 </script> 85 </head> 86 <body> 87 </body> 88 </html>