逻辑运算符的短路运算

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

逻辑运算符的短路运算
1. 逻辑运算符 && || !
短路运算
如果参与逻辑运算的表达式,第⼀个式⼦就能决定整个逻辑表达式的结果,那么就不会去算第⼆个式⼦的值,这个就是短路运算。

var num1 = 10;
var num2 = 20;
var res = num1 < 0 && num2++ > 0;
console.log(res); //false
console.log(num2); //20
//num1 < 0 已经为false,所以不执⾏后⾯的
var num1 = 10;
var num2 = 20;
var res2 = num1 > 0 || ++num2 > 0;
console.log(res2); //true
console.log(num2); //20
//num1 > 0 已经为true,所以不执⾏后⾯的
2.逻辑表达式的结果,不⼀定都是true或者false,有可能是其他的值。

var num1 = 10;
var num2 = 20;
var res = num1 && num2++ > 0;
console.log(res); // true
console.log(num2); // 21
2.1 逻辑与表达式
找假,如果第⼀个式⼦能够转换成布尔类型的false的话,那么整个逻辑与表达式的结果就是第⼀个式⼦的值;如果第⼀个式⼦不能转换成布尔类型的false的话,那么整个逻辑与表达式的结果就是第⼆个式⼦的值,不管第⼆个式⼦是什么。

var num = 10;
var res = undefined && ++num;
console.log(res); //undefinef
console.log(num); //10
var num = 10;
var res = 200 && ++num;
console.log(res); //11
console.log(num); //11
2.2 逻辑或表达式
找真,如果参与逻辑或运算的第⼀个表达式能够转换成布尔类型的true的话,那么这整个逻辑或表达式的结果就是第⼀个式⼦的值;
var num =10;
var res = 200 || num++ >0;
console.log(res); //200
console.log(num); //10
//如果第⼀个式⼦不能转换布尔类型的true的话,那么整个逻辑或表达式的结果就是第⼆个式⼦的值,不管第⼆个式⼦是什么。

var num =10;
var res = undefined || num++;
console.log(res); //10
console.log(num); //11。

相关文档
最新文档