逻辑运算符 和 逻辑赋值
逻辑与: 表达式1 && 表达式2
逻辑与 是 当两个表达式都为 true 时 整个逻辑与的结果是true,
只要有一个是false,整个逻辑与的结果为false。
简单来说 :都是 true 才是true, 有一个为false那么都为false。
var int2 = 60;
if( int2 >= 20 && int2 <= 50 ){
console.log( `${int2}在20-50之间` );
}else{
console.log( `${int2}不在20-50之间` );
}
//当int2值为60时, 那么 瞒足(int2 >= 20)表达式1 为true
//当int2值为60时, 那么 瞒足(int2 <= 50)表达式2 为false
//所以这里的结果为false,那么不会执行 if后面的代码。会直接跳过if ,执行else里面的代码
逻辑或 表达式1 || 表达式2
逻辑或 是当两个表达式的结果都为 false 时,整个逻辑或的结果为false
那么只要有一个表达式结果为 true 时,整个逻辑或的结果为true
var int3 = 60;
if( int3 < 20 || int3 > 50 ){
console.log(int3 + '不在20-50范围内')
}else{
console.log(int3 + '在20-50范围内')
}
//当int3值为60时, 那么 不瞒足(int3 < 20)表达式1 为 false
//当int3值为60时, 那么 瞒足(int3 > 20)表达式2 为 true
//所以当有一个表达式为true时,整个逻辑或的结果都为 true
/*所以执行 if 里面的代码*/
逻辑非 !表达式
逻辑非 是对表达式的结果 取反
if (!true){
console.log('我是true')
}else{
console.log('我是false')
}
//取表达式的相反值 所以输出 console.log('我是false')
逻辑运算符的短路求值
什么是短路求值?
短路求值是为了提高程序的执行效果,如果最终的结果已经确定,多余的程序就不会执行
逻辑与 表达式1 && 表达式2
两个表达式的结果,都是true,逻辑与的结果才是true
如果有一个表达式的结果是false,整个逻辑与的结果,就会是false
-
第一个表达式 的结果是 false 时, 不管第二个表达式的结果是什么
·整个逻辑与 的结果已经可以确定是 false
-
此时第二个表达式的执行 已经是 多余的了,就不会再执行了
-
逻辑与 第一个表达式结果是 false 第二个表达式的内容 不执行
逻辑或 表达式1 || 表达式2
当 两个表达式都是false , 逻辑或的结果是false
如果是一个是true , 逻辑或的结果就是 true
-
当 第一个表达式的结果是 true , 以及可以决定整个逻辑或的结果是 true
第二个表达式的执行结果,没有意义,表达式2,不会执行
-
逻辑或 第一个表达式结果是 true 第二个表达式的内容 不执行