入门 - 逻辑运算符 ¶
作者: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)。只有
? :
这个运算符是三目运算符。