短路运算(逻辑中断)
短路运算(逻辑中断):
当有多个表达式(值)时左边的表达式值可以确定结果时,就不再继续计算右边的表达式的值 我对短路运算(逻辑中断)的理解就是,就像家里面的家用电器,如果有一个短路跳闸,那么家里面全部的家用电器都不能用了
- 逻辑与:表达式1 && 表达式2
如果第一个表达式的值为真,则返回表达式2(多个表达式亦如此) 如果第一个表达式的值为假,则返回表达式1 我对逻辑与的逻辑中断的理解就是,它是为了在多个表达式中找到假的那个表达式,如果找不到就返回最后一个表达式的值
console.log('逻辑与的逻辑中断');
console.log(0 && 123);
console.log(123 && 0 && 456);
console.log('' && 123);
console.log(1 && 2 * 9 && 666);
var num = 0;
console.log(0 && num++);
console.log(num);
- 逻辑或:表达式1 || 表达式2
如果第一个表达式的值为真,则返回表达式1(多个表达式亦如此) 如果第一个表达式的值为假,则返回表达式2 我对逻辑或的逻辑中断的理解就是,它是为了在多个表达式中找到真的那个表达式,如果找不到就返回最后一个表达式的值
console.log('逻辑或的逻辑中断');
console.log(0 || 123);
console.log(123 || 0 || 456);
console.log('' || 123);
console.log(1 || 2 * 9 || 666);
var num = 0;
console.log(0 || ++num);
console.log(0 || num++);
console.log(num);
var n = 0;
console.log(123 || ++n);
console.log(123 || n++);
console.log(n);
全部代码:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>短路运算</title>
<script>
console.log('逻辑与的逻辑中断');
console.log(0 && 123);
console.log(123 && 0 && 456);
console.log('' && 123);
console.log(1 && 2 * 9 && 666);
var num = 0;
console.log(0 && num++);
console.log(num);
console.log('-----------------------------------');
console.log('逻辑或的逻辑中断');
console.log(0 || 123);
console.log(123 || 0 || 456);
console.log('' || 123);
console.log(1 || 2 * 9 || 666);
var num = 0;
console.log(0 || ++num);
console.log(0 || num++);
console.log(num);
var n = 0;
console.log(123 || ++n);
console.log(123 || n++);
console.log(n);
</script>
</head>
<body>
</body>
</html>
|