JavaScript中 && 和 || 操作符

本文详细介绍了JavaScript中逻辑运算符的使用方法及其短路原理,并通过实例演示了如何运用逻辑运算符进行条件判断,包括多种实现方式的对比。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

首先,在js逻辑运算中,0、""、null、false、undefined、NaN都会判为false

&&(逻辑与)

短路原理:
1、只要“&&”前面是false,结果都将返“&&”前面的值(无论“&&”后面是true还是false)
2、只要“&&”前面是true,结果都将返“&&”后面的值(无论“&&”后面是true还是false)

||(逻辑或)

短路原理:
1、只要“||”前面是false,结果都将返“||”后面的值(无论“||”后面是true还是false)
2、只要“||”前面是true,结果都将返“||”前面的值(无论“||”后面是true还是false)

即返回起决定性因素的那个值(控制整个条件是true还是false的那个值)。
!!的作用是把一个其他类型的变量转成的bool类型

例子

情景:判断 add_step ,返回add_level。

法1:普通if判断写法
	var add_level = 0; 
	if(add_step == 5){ 
		add_level = 1; 
	} else if(add_step == 10){ 
		add_level = 2; 
	} else if(add_step == 12){ 
		add_level = 3; 
	} else if(add_step == 15){ 
		add_level = 4; 
	} else { 
		add_level = 0; 
	}
法2:switch写法
	var add_level = 0; 
	switch(add_step){ 
		case 5 : add_level = 1; 
		break; 
	case 10 : add_level = 2; 
		break; 
		case 12 : add_level = 3; 
	break; 
		case 15 : add_level = 4; 
		break; 
	default : 
		add_level = 0; 
		break;
	}
法3: 逻辑或写法
	var add_level = (add_step==5 && 1) || (add_step==10 && 2) || (add_step==12 && 3) || (add_step==15 && 4) || 0;
法4: 更优写法
	var add_level={'5':1,'10':2,'12':3,'15':4}[add_step] || 0;

参考来源:https://www.jb51.net/article/88781.htm

JavaScript 中,`&&` `||` 操作符不仅用于布尔逻辑判断,它们还具有特殊的返回值规则,这使得这两个操作符非常有用且灵活。下面分别介绍这两种操作符的返回值特点: ### 1. `&&` (逻辑与) 操作符 对于表达式 `a && b`: - 当左边的操作数 (`a`) 的强制转换为布尔值的结果为 `false` 时,整个表达式的返回值就是 `a` 自身; - 只有当 `a` 强制转换成布尔值为 `true` 时才会计算右边的操作数 (`b`) 并将它的实际值作为最终返回结果。 **示例:** ```javascript let result1 = false && "hello"; // 返回 false let result2 = true && "world"; // 返回 "world" let result3 = "" && undefined; // 返回空字符串 "" ``` ### 2. `||` (逻辑或) 操作符 对于表达式 `a || b`: - 若左边的操作数 (`a`) 被视为真,则立即返回该操作数的实际值; - 否则继续评估右边的操作数 (`b`),并将后者当作返回结果。 这里需要注意的是,在 JavaScript 中,“被视为假”的值包括但不限于 `false`, `0`, `-0`, `null`, `undefined`, 空字符串 (`""`);而所有其他的值都被认为是真的。 **示例:** ```javascript let result4 = null || "default value"; // 返回 "default value" let result5 = 'non-empty string' || "never here"; // 返回 "non-empty string" let result6 = '' || {} ; // 返回 {} ``` 总结来说, - `&&` 直到遇到第一个“假”就停止求值并返回那个值; - `||` 则是一旦找到一个非“假”,就会跳过后续部分直接给出此值。 这种机制允许我们利用这两个操作符来做更优雅、简洁的选择赋值其他控制流任务。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值