21.非布尔值的逻辑与或非

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>非布尔值的逻辑与或非</title>
		<script type="text/javascript">
			/* 
				对于非布尔值进行与或非逻辑运算时
					会先将其转换为布尔值,然后再运算,并且返回原值
			 */
			//与运算:如果两个值都为true,则返回后边的
			var result = 1 && 2;
			console.log("result = "+result);//2
			result = 2 && 1;
			console.log("result = "+result);//1
			
			//与运算:如果两个值中有false,则短路原理,返回最先检测到的false
			var result2 = 0 && false;
			console.log("result2 ="+result2);
			var result2 = false && 0;
			console.log("result2 ="+result2);
			var result2 = NaN && 1;
			console.log("result2 ="+result2);
			
			//或运算:如果第一个值为false,则返回后边的
			var result3 = 0 || NaN;
			console.log("result3 = "+result3);//NaN
			result3 = NaN || 0;
			console.log("result3 = "+result3);//0
			
			//或运算:如果两个值中有true,则短路原理,返回最先检测到的true
			var result4 = 1 || 88;
			console.log("result4 ="+result4);
			var result4 = 88 || 1;
			console.log("result4 ="+result4);
			var result4 = " " || 1;
			console.log("result4 ="+result4);
			
			/* 
				怎样记忆呢?
				- 短路原理是一类,很简单,&&如果碰到false,则短路
									 ||如果碰到true,则短路
				- 第二类就是整个表达式的值可以确定,然后就弹出。其实短路原理也属于这类
					比如:1 && NaN,读到1的时候,表达式的值不能确定,然后就需要继续读到NaN,这时候,表达式的值确定,那就返回NaN
						 1 && true,读到1的时候,表达式的值不能确定,然后就需要继续读到true,这时候,表达式的值确定,那就返回true
						 false && 1,读到fasle的时候,表达式的值确定,然后就返回false
						 
						 false||1,读到false的时候,表达式的值不能确定,然后继续读到1,表达式的值确定,然后就返回1
						 false||fasle,读到false的时候,表达式的值不能确定,然后继续读到fasle,表达式的值确定,然后就返回fasle
						 1||fasle,读到1的时候,表达式的值确定,然后就返回1		 
			 */
		</script>
	</head>
	<body>
	</body>
</html>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值