HLJ 发布于
2025-06-10 17:44:39
0阅读

JavaScript 基础:逻辑运算符

JavaScript 基础:逻辑运算符

JavaScript 中的逻辑运算符用于对布尔值进行逻辑操作,或者对值进行布尔判断。以下是主要的逻辑运算符:

基本逻辑运算符

1. 逻辑与 (&&)

  • 语法:expr1 && expr2
  • 如果 expr1 可以转换为 false,则返回 expr1;否则返回 expr2
  • 常用于条件判断
true && true    // 返回 true
true && false   // 返回 false
false && true   // 返回 false
false && false  // 返回 false

// 短路行为
0 && 5          // 返回 0 (因为0是假值)
3 && 4          // 返回 4 (因为3是真值)

2. 逻辑或 (||)

  • 语法:expr1 || expr2
  • 如果 expr1 可以转换为 true,则返回 expr1;否则返回 expr2
  • 常用于设置默认值
true || true    // 返回 true
true || false   // 返回 true
false || true   // 返回 true
false || false  // 返回 false

// 短路行为
0 || 5          // 返回 5 (因为0是假值)
3 || 4          // 返回 3 (因为3是真值)

3. 逻辑非 (!)

  • 语法:!expr
  • 将操作数转换为布尔值后取反
  • 总是返回布尔值
!true           // 返回 false
!false          // 返回 true
!0              // 返回 true
!1              // 返回 false
!!"hello"       // 返回 true (双非运算符用于强制转换为布尔值)

特殊逻辑运算符 (ES6+)

4. 空值合并运算符 (??)

  • 语法:expr1 ?? expr2
  • 如果 expr1nullundefined,则返回 expr2;否则返回 expr1
  • || 不同,它只针对 nullundefined
null ?? 'default'   // 返回 'default'
undefined ?? 42     // 返回 42
0 ?? 42             // 返回 0 (与 || 不同)
'' ?? 'default'     // 返回 '' (与 || 不同)

5. 可选链运算符 (?.)

  • 语法:obj?.propobj?.[expr]func?.(args)
  • 用于安全访问嵌套对象属性或方法
const user = {
  name: 'John',
  address: {
    city: 'New York'
  }
};

user?.address?.city     // 'New York'
user?.contacts?.phone   // undefined (不会抛出错误)
user.sayHello?.()       // 如果sayHello不存在则不会调用

逻辑运算符的短路行为

JavaScript 的逻辑运算符具有短路行为:

  • &&:如果第一个操作数为假,不会计算第二个操作数
  • ||:如果第一个操作数为真,不会计算第二个操作数
  • ??:如果第一个操作数不是 nullundefined,不会计算第二个操作数
// 示例:短路行为
function logMessage() {
  console.log('函数被调用');
  return true;
}

true || logMessage()  // logMessage不会被调用
false && logMessage() // logMessage不会被调用
null ?? logMessage()  // logMessage会被调用

逻辑运算符是 JavaScript 编程中非常重要的基础,理解它们的特性和行为对于编写高效、简洁的代码至关重要。

当前文章内容为原创转载请注明出处:http://www.good1230.com/detail/2025-06-10/768.html
最后生成于 2025-06-13 20:52:03
此内容有帮助 ?
0