算术运算符
- 基础运算:
+
(加法)、-
(减法)、*
(乘法)、/
(除法)、%
(取余)console.log(10 % 3); // 输出 1(取余)
- 自增/自减:
++
(前置/后置自增)、--
(前置/后置自减)let a = 5; console.log(a++); // 先返回 5,再自增到 6[2,7](@ref)
操作 | 结果 | 说明 |
---|---|---|
"5" + 3 |
"53" |
字符串拼接 |
"5" - 3 |
2 |
字符串转为数字后计算 |
true + "2" |
"true2" |
布尔值转为字符串后拼接 |
null + 5 |
5 |
null 转为 0 |
"apple" - 2 |
NaN |
无法转为数字 |
-
隐式类型转换风险
- 加法中若存在字符串,可能意外触发拼接而非数值计算
- 建议显式转换类型(如
Number()
、parseInt()
)避免歧义
-
NaN 的产生条件
- 非数字字符串参与数值运算(如
"abc" - 3
) undefined
参与运算
- 非数字字符串参与数值运算(如
字符串与其他类型相加
:若任一操作数为字符串,则执行字符串拼接。非字符串类型会优先转为字符串
console.log(5 + " apples"); // "5 apples"(数字→字符串)
console.log(true + "2"); // "true2"(布尔值→字符串)
. 数字与非字符串类型相加 布尔值:true
转为 1
,false
转为 0
console.log(7 + true); // 8(7 + 1)
console.log(-3 + false); // -3(-3 + 0)
null/undefined:null
转为 0
,undefined
转为 NaN
console.log(null + 5); // 5(0 + 5)
console.log(undefined + 5); // NaN(NaN + 5)
相减(-
运算符)
1. 字符串与非字符串类型相减
- 规则:所有操作数尝试转为数字,失败则为
NaN
console.log("5" - 3); // 2(字符串 "5" → 5) c