算数运算符

数学运算符

  1. + - * /

  2. + -

  3. % 求余运算

  4. ++ -- (下节课讨论)

  5. ** 幂运算

细节

  1. 数字运算是不精确的
  2. 除数为 0

如果 被除数是正数,得到结果 Infinity(正无穷)。

如果 被除数是负数,得到结果 -Infinity(负无穷)。

如果 被除数是 0,得到结果 NaN(Not a Number,非数字)。

typeof 函数 返回类型为 String(字符串)

isNaN 函数,该函数用于判断一个数据是否是 NaN,返回类型为 Boolean(布尔)

isFinite 函数,该函数用于判断一个数据是否是有限的,返回类型为 Boolean(布尔)

  1. 求余

%,有的教程称之为求模。

10 % 2 = 0,
10 % 3 = 1,
-10 % 3 = -1
1
2
3

提示

求的是 被除数 除以 除数 的余数;即 10 ÷ 2 的余数。

余数的符号,与被除数相同。

其他类型使用算数运算

  1. 除加号之外的算数运算符

将原始类型转换为数字类型(自动完成转换),然后进行运算。

  • boolean:
    • true -> 1, false -> 0
  • string:
    • 如果字符串内部是一个正确的数字,直接变为数字,如果是一个非数字,则得到 NaN(能识别 Infinity,不能把字符串内部的东西当作表达式,如果字符串是一个空字符串(没有任何内容),转换为 0,字符串转换时会忽略前后空格。

NaN 虽然是数字类型,但它和任何数字作任何运算,得到的结果都是 NaN

  • null:
    • null -> 0
  • undefined:
    • undefined -> NaN

将对象类型先转为字符串类型,然后再将该字符串转换为数字类型

对象类型 -> "[object Object]" -> NaN

  1. 加号运算符
  • 加号一边有字符串,含义变为 字符串拼接

将另一边的其他类型,转换为字符串

数字 --> 数字字符串

boolean --> boolean 字符串

null --> "null"

undefined --> "undefined"

对象 --> "[object Object]"
1
2
3
4
5
6
7
8
9
  • 加号两边都没有字符串,但一边有对象,将对象转换为字符串,然后按照上面的规则进行

  • 其他情况和上面的数学运算一致