【JS】逻辑中断

逻辑中断

原则:“缺啥返回啥”

  逻辑中断(短路运算)的原理:当有多个表达式(值)时,左边表达式的值可以确定时,就不再继续运算右边表达式的值。

  ※0" " (空字符串)' '(空字符串)null(空值)undefined(未定义)NaN(非数值)都表示为false,除这些之外的为true。

  ※逻辑非始终返回布尔类型的变量。

  ※逻辑中断非常重要,它会影响程序运行的结果。如下:

var num = 0;
document.write(123 || num++);	※逻辑中断,返回值123,之后的代码不再继续运行
document.write(num);			num的值仍为0

逻辑与的逻辑中断

  执行过程 :

  javascript依次获取每一个操作数,将它们转换为布尔变量,如果是false,则直接返回这个操作数的值(注意,返回的是转换前的原值,不一定是布尔类型),中断后面操作数的处理;否则继续处理下一个操作数。如果直到最后一个操作数仍然对应布尔变量true,则返回最后这个操作数的值。

  语法 :

逻辑与&&,当两边全为true时,结果才为true&&想象成是两个true,它缺false所以应该返回个false

		 true true
表达式1		&& 		表达式2

从左往右数,哪个表达式是false就返回谁的原值,并且中断停止不再继续。
如果全都是true就返回最后一个表达式2的原值。

  例题 :

<script type="text/javascript">
	document.write(123 && 456); 				 返回值为456
	document.write(0 && 456); 					 返回值为0
	document.write(0 && 1 + 2 && 456 * 56789);   返回值为0
	document.write(" " && 1 + 2 && 456 * 56789); 返回值为空白(空的字符串)
</script>

逻辑或的逻辑中断

  执行过程 :

  javascript依次获取每一个操作数,将它们转换为布尔变量,如果是false,则直接返回这个操作数的值(注意,返回的是转换前的原值,不一定是布尔类型),中断后面操作数的处理;否则继续处理下一个操作数。如果直到最后一个操作数仍然对应布尔变量false,则返回最后这个操作数的值。

  语法 :

逻辑或||,当两边全为false时,结果才为false||想象成是两个false,它缺true所以应该返回个true

		false false
表达式1 		||		表达式2

从左往右数,哪个表达式是true就返回谁的原值,并且中断停止不再继续。
如果全都是false就返回最后一个表达式2的原值。

  例题 :

<script type="text/javascript">
	document.write(123 || 456); 			 	 返回值为123
	document.write(123 || 456 || 456 + 123); 	 返回值为123
	document.write(0 || 456 || 456 + 123);  	 返回值为456
</script>

我寻见一片海 碧蓝且耀着光
大片船只航行其上 都向着远方

                         Shared by Foriver_江河



© 1997-8023 江河 All Rights Reserved.
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值