算术操作符的隐秘行为
JavaScript的+操作符具有双重身份:数值相加与字符串拼接。当任一操作数为字符串时,自动触发字符串拼接行为
console.log(1 + 2) // 3
console.log(1 + '2') // '12'
console.log(null + 1) // 1 (null转为0)
递增(++)和递减(--)操作符不仅修改值,还返回不同的结果:
let x = 1
console.log(x++) // 1 (返回原值)
console.log(++x) // 3 (返回新值)
比较操作符的陷阱
==的隐式类型转换规则复杂难记,建议始终使用严格相等===:
console.log(1 == '1') // true (类型转换)
console.log(1 === '1') // false (类型严格比较)
console.log(null == undefined) // true (特殊规则)
逻辑操作符的妙用
&&和||并不返回布尔值,而是返回其中一个操作数的值:
console.log(0 || 'default') // 'default' (短路求值)
console.log('' && 'value') // '' (遇到假值即返回)
现代操作符的强大功能
可选链?.和空值合并??是ES2020的实用新增:
const user = { address: null }
console.log(user?.address?.street) // undefined (避免报错)
console.log(null ?? 'default') // 'default' (仅null/undefined时触发)
掌握这些操作符的细微差别,将显著提升你的代码质量和开发效率。

被折叠的 条评论
为什么被折叠?



