入门 - 逻辑运算符

  • 作者:KK

  • 发表日期:2016.2.20


逻辑运算符用来模仿人的思维,主要用在if语句里做判断,逻辑运算符有3个,分别是&&||!,呵呵到这里好像学了好多运算符不太好记的样子,没事的,我们程序员平时都不去记运算符,都是靠写代码熟练起来的,继续学下去吧!

而和运算是只针对布尔值做计算的,就像加减乘除只对数字做计算,不对字符串和布尔值做计算一样。

&&【和】运算

  • 基本知识

    要求参与计算的两个值都是 true 结果才为 true,其它情况一律为 false。

    var result = true && true;
    alert(result); //true
    
    result = false && true;
    alert(result); //false,因为运算符左边的值不是 true
    
    result = false && false;
    alert(result); //false,你只要记住一点:运算符左右两边都必须为 true
    
    result = 1 == 1 && true;
    alert(result); //true,因为左边表达式 1 == 1 的计算结果是 true ,两个1相等嘛
    
    var b = 9
    result = 1 + 8 == b && 9 - 7 == 2;
    alert(result); //万变不离其宗, && 号左右两边的表达式结果都是 true,所以 result 就为 true 
    

    这个运算又有另一种叫法,称为逻辑与运算


  • 在 if 里的基本使用

    如果我们要判断"既要名字为小明,年龄又要满18岁,"才弹窗提示就可以用和运算来实现。

    var name = '小明',
    	age = 18; //你试着改掉这个数字不等于18就不会执行下面的提示了
    
    if(name == '小明' && age == 18){
    	alert('既是小明又是18岁');
    }
    
    

    && 和运算表示"条件1 和 条件2"都要成立(结果为 true 就是成立)才可以,如果条件1不成立,那么再加个条件3成立也没用,必须所有条件都成立!


  • 多次 && 运算

    在 if 代码中可以进行多次和运算,比如if(name == 'aa' && age == 20 && money == 99),这样程序会从左到右计算,先将name == 'aa' && age == 20计算出一个布尔值。

    如果这个布尔值为true,那么表达式可以进一步简写成true && money == 99,左边是true,右边money == 99如果也是true,那就变成true && true结果就变成了true。


||【或】运算

  • 基本知识

    又叫逻辑或运算

    当运算符左右两边的值任意一个为 true 时结果都为 true。

    var result = true || false;
    alert(result); //true
    
    result = false || true;
    alert(result); //true
    
    result = false || false;
    alert(result); //false
    
    result = true || true;
    alert(result); //true
    

  • 应用例子

    var name = prompt('请输入A,B,C中的一个字母');
    if(name == 'A' || name == 'B'){ //如果是A或者B 就结果为true,满足if条件
    	alert('不错!我喜欢这个字母!');
    }else{
    	alert('我讨厌字母C!');
    }
    

!【非】运算

这个运算只接受一个被计算的值,如果这个值是 true,那么计算结果就是 false;反之如果值是 false,那么计算结果就是 true。

var result = !true;
alert(result); //false

var result = !false;
alert(false); //true

var age = 17;
if(!age >= 18){ //age >= 18的结果是false,然后!false就变成true,符合
	alert('未成年,禁止买烟');
}else{
	alert('已成年,99块钱卖给你!');
}

三目逻辑逻辑运算符

最后再来补充一个知识点,运算符除了分为数学运算符比较运算符逻辑运算符之外,还分为双目运算符单目运算符三目运算符

  • 双目运算符就是运算符是针对两个值进行运算的,比如加法,1 + 1这样,加号左右两边各有一个被运算的值(又叫操作数),一共两个值,就叫双目。

  • 单目运算符就是只有一个操作数的运算符号,比如!false这个逻辑非运算就是单目运算符(并且也只有它一个是单目运算符)。

  • 三目运算符就是8 > 7 ? 88 : 99这个if else的简写运算符了。

    它一共有三个操作数,第1个操作数是问号左边的值8 > 7,虽然这是一个操作数表达式,但它运算的结果是true,那么精简一下表达式就是true ? 88 : 99,第2个操作数是:号左边的值(88),第3个操作数是:号右边的值(99)。

    只有? :这个运算符是三目运算符。