运算符也叫操作符
通过运算符可以对一个或者多个值进行运算,并获取运算结果
比如 typeof 就是运算符,可以来获取一个值的类型
它会将该值的类型以字符串的形式返回
number string boolean undefined object
算数运算符
当对非Number类型的值进行运算时, 会将这些值转换为Number,然后再运算。
任何值和 NaN 做运算都得 NaN
加号
【+】
可以对两个值进行加法运算,并将结果返回。
如果对两个字符串进行加法运算,则会做拼串,
会将两个字符串拼接为一个字符串,并返回。
任何值和字符串做加法运算,都会先转换为字符串,然后再和字符串做拼串的操作。
-
可以利用这一特点,来将一个任意的数据类型转换为String
-
只需要为任意的数据类型 + 一个 “” 即可将其转换为String
-
这是一个隐试的类型转换,由浏览器自动完成,实际上它是调用String
var c = 123; c = c + "" ; 和 c = String(c); // 本质相同,结果都为String
减号
【-】
可以对两个值进行减法运算,并将结果返回。
[ 除了 加法和字符串相加 的转换为字符串,其他的都转换为number]
result = 100 - true; // 99
result = 100 - "1"; // 99
乘号[ * ]、除号[ / ]
【*】
可以对两个值进行乘法运算
result = 2 * "8"; // 16
result = 2 * undefined; // NaN
result = 2 * null; // 0
result = 4/2; // 2
任何值做 减 乘 除 运算时,都会自动转换为Number
- 可以利用这一特点做隐式的类型转换
- 可以通过一个值 -0 ,*1 , /1 来将其转换为 Number
- 原理和Number() 函数一样,使用起来更加方便
d = d - 0
取模运算 %
【%】
取模运算(取余数)
result = 9 % 3; // 0
result = 9 % 4; // 1
result = 9 % 5; // 4
一元运算符
一元运算符,只需要一个操作数
正号 +
- 正号不会对数字产生影响
负号 -
- 负号可以对数字进行取反
对于非Number类型的值,
它会先转换成 Number,然后再运算
可以对一个其他的数据类型使用 + 来将其转换成 number
它的原理和 Number() 函数一样
自增 ++
- 通过自增可以使变量在自身的基础上增加 1
- 对于一个变量自增以后,原变量的值会立即自增 1
- 自增分为两种: 后++【a++】 前 ++【++a】
- 无论是 a++ 还是 ++a,都会立即使原变量的值自增 1
- 不同的是 a++ 和 ++a 的值不同
a++ 的值等于原变量的值(自增前的值)
++a 的值等于新值 (自增后的值)
自减 - -
- 通过自减可以使变量在自身的基础上减 1
- 自减 分成两种: 后--(a--) 和 前-- (--a)
- 无论是 a-- 还是 --a 都会立即使原变量的值自减1
- 不同的是 a-- 和 --a 的值不同
a-- 是变量的原值(自减前的值)
--a 的值等于新值 (自减后的值)