# 算术运算符

# 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

# 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

# 4. 对象相加

var obj = { p: 1 };
obj + 2 // "[object Object]2"
1
2

# 余数运算符

12 % 5 // 2
1

运算结果的正负号由第一个运算子的正负号决定。

-1 % 2 // -1
1 % -2 // 1
1
2
6.5 % 2.1
// 0.19999999999999973
1
2

# 自增和自减运算符

var x = 1;
++x // 2
x // 2

--x // 1
x // 1
1
2
3
4
5
6

# 正负运算符

# 1. 正

+true // 1
+[] // 0
+{} // NaN
1
2
3

# 2. 负

var x = 1;
-x // -1
-(-x) // 1
1
2
3

# 指数运算符

2 ** 4 // 16

// 相当于 2 ** (3 ** 2)
2 ** 3 ** 2
// 512
1
2
3
4
5

# 赋值运算符

// 将 1 赋值给变量 x
var x = 1;

// 将变量 y 的值赋值给变量 x
var x = y;
1
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