javascript运算符有哪些_逻辑运算符和比较运算符怎么用

JavaScript运算符共分算术、赋值、比较、逻辑、位、一元、三元及其他特殊运算符八大类;其中比较运算符(如===、==、>等)判断关系并返回布尔值,逻辑运算符(&&、||、!)组合条件并支持短路与隐式转换,二者常配合用于条件控制。

JavaScript 运算符共分几大类:算术、赋值、比较、逻辑、位、一元、三元及其他特殊运算符。其中逻辑运算符和比较运算符常配合使用,是条件控制(如 ifwhile)的核心基础。

比较运算符:判断值的大小或相等性,返回布尔值

比较运算符用于两个操作数之间做关系判断,结果一定是 truefalse。常见有:

  • >>=:按数值或字符串 ASCII 码顺序比较
  • ==!=:宽松相等/不等,会自动类型转换(易出错,不推荐)
  • ===!==:严格相等/不等,要求值和类型都一致(开发中应优先使用)

注意细节:

  • 字符串比较时,逐字符比 ASCII 码,"abc" 为 true
  • "" == 0true(空字符串转为 0),但 "" === 0false
  • NaN === NaNfalse,必须用 Number.isNaN(x) 判断
  • null == undefined 返回 true,但 null === undefinedfalse

逻辑运算符:组合多个条件,控制程序流程

逻辑运算符作用于布尔值,但实际可接受任意类型——JavaScript 会先将其“隐式转换”为布尔值再运算:

  • &&(与):全真才真。遇到假值立即返回该假值(短路),否则返回最后一个操作数
  • ||(或):一真即真。遇到真值立即返回该真值(短路),否则返回最后一个操作数
  • !(非):取反,返回布尔结果;连用两次 !!x 可强制转布尔值

真值与假值规则(记住这几种典型):

  • 假值:false0-0""(空字符串)、nullundefinedNaN
  • 真值:其余所有值,包括 "0""false"[]{}function(){}

实用写法示例:

  • user && user.name && user.name.length > 0 —— 防止访问空对象属性
  • const name = inputName || "匿名用户" —— 提供默认值
  • if (age >= 18 && hasId && !isBlocked) —— 多条件准入判断

比较 + 逻辑的典型配合用法

两者经常嵌套使用,构成业务判断主干:

  • 范围判断:if (score >= 60 && score
  • 排除无效输入:if (typeof value === "number" && !isNaN(value))
  • 登录校验:if (username && password && username.length > 2)
  • 避免 null/undefined 报错:obj?.items?.length > 0 || Array.isArray(obj.items) && obj.items.length > 0

关键提醒:优先用 === 替代 ==,能大幅减少因类型转换引发的隐蔽 bug;逻辑运算中善用短路特性,既简洁又安全。