提示:
布尔值参与的逻辑运算 true && false == false
123 && 456 是值 或者是 表达式 参与的逻辑运算
一、逻辑运算符(短路中断)?
短路运算的原理:当有多个表达式(值)时,左边的表达式值可以确定结果时,就不再继续运算右边的表达式的值。
<ul>
<i>逻辑与</i>
<li>语法:表达式1&&表达式2</li>
<li>如果第一个表达式的值为真,则返回表达式2</li>
<li>如果第一个表达式的值为假,则返回表达式1</li>
</ul>
逻辑与短路运算 ,如果表达式1 结果为真,则返回表达式2;如果表达式1为假,则返回表达式1。
<script>
console.log(123 && 456); // 输入结果为456
</script>
输出结果为:
<script>
console.log(false && 456); // false
</script>
输出结果为:
总结:
<script>
console.log(0 && 456 && 8++ && 25 * 15); // 0
</script>
如果有空的或者否定的为假 其余是真的 ( 逻辑中断:0 、 ' '、 null、 undefined 、NaN)
二、 逻辑或短路运算
逻辑或短路运算 (如果表达式1结果为真,则返回的是表达式1;如果表达式1为假,则表达式返回的表达式2)
<ul>
<i>逻辑或</i>
<li>语法:表达式1||表达式2</li>
<li>如果第一个表达式的值为真,则返回表达式1</li>
<li>如果第一个表达式的值为假,则返回表达式2</li>
</ul>
示例:
<script>
console.log(123||456); // 123
console.log(0||456); // 456
</script>
输出结果:
示例:
<script>
var num = 0;//声明一个变量num,并赋值为0
console.log(123 || num++);// 123 (因为123为真,则后边的num++不再执行运算。)
console.log(num); //123或者num++,因为123为真,num++不再执行,所以输出为0
</script>
输出结果: