JavaScript 中“&”和“&&”运算符的区别
JavaScript 中“&”和“&&”运算符具有不同的作用目的,每个都有自己的行为和使用场景。
'&' 按位 AND运算符
'&' 是按位 AND 运算符,主要用于低级编程或处理二进制数据时。它在两个数字操作数之间执行按位 AND 运算,产生一个数字。如果操作数不是数字,则将它们强制转换为数字。
示例:
const first = 123; const second = true; console.log(first & second); // 72 (bit-wise AND operation)
'&&' 逻辑与运算符
'&&' 是逻辑与运算符,通常用于评估条件。在其常规用法中,它检查两个操作数是否为 true-y,如果是,则返回 true,否则返回 false。
但是,在 JavaScript 中,逻辑 AND 运算符的行为扩展为允许任何数据类型和任意数字操作数。它按顺序计算操作数并返回:
示例:
const first = true; const second = false; const third = "abc"; console.log(first && second && third); // false (returns the first false-y operand)
&&' 短路行为
'&&' 运算符表现出短路行为。一旦遇到 false-y 操作数,它就会终止计算并返回 false。这是一种优化技术,在某些场景下可以提高代码效率。
示例:
const user = { isLoggedIn: () => false }; const message = user.isLoggedIn() && alert("Hello!"); // Equivalent to: if (user.isLoggedIn()) { alert("Hello!"); }
因此,'&' 和 '&&' 在 JavaScript 中扮演着不同的角色。 '&' 用于按位运算,而 '&&' 用于逻辑计算,通常替代 if-else 语句,提供简洁有效的条件检查方式。
免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。
Copyright© 2022 湘ICP备2022001581号-3