所谓逻辑运算符就是与&&、或||、非! 三种,逻辑运算符又叫条件运算符,即运算的结果只有两种,真(true)或假(false)。在进行逻辑运算学习前,我们先复习一下非Boolean类型转换为Boolean的规则:

  • 使用Boolean()函数
    (1)数字 –> 布尔
    除了0和NaN,其余都是true
    (2)字符串 –> 布尔
    除了空字符串,其余都是true
    (3)null和undefined都会转换为false
    (4)对象(Object)也会转换为true

! 非

  • ! 可以用来对一个值进行非运算
  • 所谓的非运算就是对一个布尔值进行取反操作,true变false,false变true
  • 如果对一个值进行两次取反,则还是它本身
  • 如果对非布尔值进行运算,则会将其转换为布尔值,然后再取反,所以我们可以利用该特点,来将一个其他的数据类型转换为布尔值
  • 可以为一个任意数据类型取两次反,来将其转换为布尔值,原理和Boolean()函数一样。(转换类型在这里不继续做补充,大家要了解可以看一下我的前一篇博客JavaScript的强制类型转换(String Number Boolean))

&& 与

  • &&可以对符号两侧的值进行与运算并返回结果
  • 运算规则:
    (1)两个值中只要有一个值为false就返回false,只有两个值都为true时,才会返回true
    (2)JS中的“与”属于短路的与,如果第一个值为false,则不会再看第二个值。(当然不止在js中是这样,像C语言和java都是这个规则,只要第一个是false,则直接返回false,不再继续看你第二个是true还是false)
    例:
<script type="text/javascript">
	var a = false;
    var b = "123";
    var c = a && b;
    console.log(typeof c);
    console.log("c = " + c); 
</script>

运行结果:

(3)在进行与&&运算时
1.如果第一个值为true,则必然返回第二个值。如果两个值都为true,则返回后边的
例:

<script type="text/javascript">
	var a = 3;
    var b = 4;
    var c = a && b;
    console.log("c = " + c); 
</script>

运行结果:

2.如果两个值中有一个值false,则返回false的值,如果两个都是false,则返回靠前的false
例:

<script type="text/javascript">
	var a = 0;
    var b = 3;
    var c = a && b;
    console.log("c = " + c); 
</script>

运行结果:

例:

<script type="text/javascript">
	var a = 6;
    var b = 0;
    var c = a && b;
    console.log("c = " + c); 
</script>

运算结果:

|| 或

  • ||可以对符号两侧的值进行或运算并返回结果
  • 运算规则:
    (1)两个值中只要有一个true,就返回true,如果两个值都为false,才返回false
    (2)JS中的“或”属于短路的或,如果第一个值为true,则不会检查第二个值
    例:
<script type="text/javascript">
	var a = true;
    var b = false;
    var c = a || b;
    console.log(typeof c);
    console.log("c = " + c); 
</script>

运行结果:

(3)在进行或||运算时
1.如果第一个值为true,则直接返回第一个值
例:

<script type="text/javascript">
	var a = 6;
    var b = 0;
    var c = a || b;
    console.log("c = " + c); 
</script>

运行结果:

2.如果第一个值为false,则直接返回第二个值
例:

<script type="text/javascript">
	var a = 0;
    var b = 6;
    var c = a || b;
    console.log("c = " + c); 
</script>

运行结果:

总结:

总结来说,大家可以把与&&逻辑运算理解为如果一盒饼干,我吃了第一个会拉肚子,我肯定不会继续吃第二个。即只要第一个false,就不会看后面的值,直接返回false。只有全部都是好的,不会拉肚子的我才会吃完整盒,即只有都是true才会返回true。

|| 或运算大家也可以自己进行想象记忆,可以在与&&的基础上进行对比。

大家在进行逻辑运算学习的时候,一定一定要自己去敲一遍,多敲几遍,多试几个样例就记住运算规则了~

本文地址:https://blog.csdn.net/weixin_46452134/article/details/111088221