JavaScript运算符共分算术、赋值、比较、逻辑、位、一元、三元及其他特殊运算符八大类;其中比较运算符(如===、==、>等)判断关系并返回布尔值,逻辑运算符(&&、||、!)组合条件并支持短路与隐式转换,二者常配合用于条件控制。
JavaScript 运算符共分几大类:算术、赋值、比较、逻辑、位、一元、三元及其他特殊运算符。其中逻辑运算符和比较运算符常配合使用,是条件控制(如 if、while)的核心基础。
比较运算符用于两个操作数之间做关系判断,结果一定是 true
或 false。常见有:
、>、、>=:按数值或字符串 ASCII 码顺序比较== 和 !=:宽松相等/不等,会自动类型转换(易出错,不推荐)=== 和 !==:严格相等/不等,要求值和类型都一致(开发中应优先使用)注意细节:
"abc" 为 true
"" == 0 是 true(空字符串转为 0),但 "" === 0 是 false
NaN === NaN 为 false,必须用 Number.isNaN(x) 判断null == undefined 返回 true,但 null === undefined 是 false
逻辑运算符作用于布尔值,但实际可接受任意类型——JavaScript 会先将其“隐式转换”为布尔值再运算:
&&(与):全真才真。遇到假值立即返回该假值(短路),否则返回最后一个操作数||(或):一真即真。遇到真值立即返回该真值(短路),否则返回最后一个操作数!(非):取反,返回布尔结果;连用两次 !!x 可强制转布尔值真值与假值规则(记住这几种典型):
false、0、-0、""(空字符串)、null、undefined、NaN
"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)
obj?.items?.length > 0 || Array.isArray(obj.items) && obj.items.length > 0
关键提醒:优先用 === 替代 ==,能大幅减少因类型转换引发的隐蔽 bug;逻辑运算中善用短路特性,既简洁又安全。