# 算术运算符
# 10个算术运算符
加法运算符:x + y
减法运算符: x - y
乘法运算符: x * y
除法运算符:x / y
指数运算符:x ** y
余数运算符:x % y
自增运算符:++x 或者 x++
自减运算符:--x 或者 x--
数值运算符: +x
负数值运算符:-x
# 加法运算符
# 1. 数值相加
1 + 1 // 2
1
# 2. Boolean相加
true + true // 2
1 + true // 2
1
2
2
# 3. 字符串相加
'a' + 'bc' // "abc"
1 + 'a' // "1a"
false + 'a' // "falsea"
'3' + 4 + 5 // "345"
3 + 4 + '5' // "75"
1 - '2' // -1
1 * '2' // 2
1 / '2' // 0.5
1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
# 4. 对象相加
var obj = { p: 1 };
obj + 2 // "[object Object]2"
1
2
2
# 余数运算符
12 % 5 // 2
1
运算结果的正负号由第一个运算子的正负号决定。
-1 % 2 // -1
1 % -2 // 1
1
2
2
6.5 % 2.1
// 0.19999999999999973
1
2
2
# 自增和自减运算符
var x = 1;
++x // 2
x // 2
--x // 1
x // 1
1
2
3
4
5
6
2
3
4
5
6
# 正负运算符
# 1. 正
+true // 1
+[] // 0
+{} // NaN
1
2
3
2
3
# 2. 负
var x = 1;
-x // -1
-(-x) // 1
1
2
3
2
3
# 指数运算符
2 ** 4 // 16
// 相当于 2 ** (3 ** 2)
2 ** 3 ** 2
// 512
1
2
3
4
5
2
3
4
5
# 赋值运算符
// 将 1 赋值给变量 x
var x = 1;
// 将变量 y 的值赋值给变量 x
var x = y;
1
2
3
4
5
2
3
4
5
# 混合运算符
// 等同于 x = x + y
x += y
// 等同于 x = x - y
x -= y
// 等同于 x = x * y
x *= y
// 等同于 x = x / y
x /= y
// 等同于 x = x % y
x %= y
// 等同于 x = x ** y
x **= y
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17