JavaScript基础 -- 运算符
运算符
运算符也叫操作符,通过运算符可以对一个或多个值进行运算,并获取运算结果
比如: typeof就是运算符, 可以来获取一个值的类型,他会将该值的类型以字符串的形式返回
算数运算符
当对非Number的值进行算数运算,会先将其转换为Number类型再运算
任何值和NaN运算都会得到NaN
+ :
+可以对两个值进行加法运算,并将结果返回
如果对两个字符串进行加法运算,则会做拼串
任何的值和字符串做加法运算,都会先转换为字符串,再做拼串, 可利用这一特点将数字转换为字符串类型
- : 可以对两个值进行减法操作,并将结果返回
* : 可以对两个值进行乘法操作,并将结果返回
/ : 可以对两个值进行除法操作,并将结果返回
% : 取余数
一元运算符
只需要一个操作数
+ : 正号,不会对数字产生任何影响
- : 负号 , 负号可以对数字取反
对于非Number类型 , 会先将其转换为Number类型
自增自减
自增 ( ++ ) :
- 通过自增可以使变量在自身的基础上增加1
- 对于一个变量自增之后,原变量的值会立即自增1
- 自增分两种: 后++(a++) 和 前++(++a)
不同的是a++ 和 ++a 的值不同
a++的值等于原变量的值( 自增前的值 ),
++a的值等于原变量新值( 自增后的值 )
自减 ( -- ) :
- 通过自减可以使变量在自身的基础上减1
- 自减分两种: 后--(a--) 和 前--(--a)
不同的是a-- 和 --a 的值不同
a--的值等于原变量的值( 自减前的值 ),
--a的值等于原变量新值( 自减后的值 )
逻辑运算符
JS中为我们提供了三种逻辑运算符
! ( 非 ) :
- ! 可以对一个值进行非运算
- 所谓非运算就是值对一个布尔值进行取反操作
true变false, false变true
- 如果对非布尔值进行非运算,则会先将其转换为布尔值,再取反
布尔值的情况:
&& ( 与 ) :
- 可以对符号两侧的值进行与运算并返回结果
- 两个值中只要有一个值是false就返回false , 只有两个都是true才返回true
|| (或) :
- 可以对符号两侧的值进行或运算并返回结果
- 两个值中只要有一个值是true就返回true , 只有两个都是false才返回false
非布尔值的情况:
&& ( 与 ) :
- 对于非布尔值进行与运算,会先将其转换为布尔值,然后在运算,并且返回原值
- 如果第一个值为true ,则必然返回第二个值
如果第一个值为false ,则直接返回第一个值
|| (或) :
- 对于非布尔值进行或运算,会先将其转换为布尔值,然后在运算,并且返回原值
- 如果第一个值为true ,则直接返回第一个值
如果第一个值为false ,则返回第二个值
赋值运算符
= 可以将符号右侧的值赋值给左侧变量
+= : a += 5 等价于 a = a + 5
-= : a -= 5 等价于 a = a - 5
*= : a *= 5 等价于 a = a * 5
/= : a /= 5 等价于 a = a / 5
%= : a %= 5 等价于 a = a % 5
关系运算符
通过关系运算符可以比较两个值之间的大小关系,如果关系成立它会返回true, 关系不成立则返回false
> 大于号 : -判断符号左侧的值是否大于右侧的值, 成立则返回true,不成立则返回false
>= 大于等于号 : -判断符号左侧的值是否不小于右侧的值, 成立则返回true,不成立则返回false
< 小于号 : -判断符号左侧的值是否小于右侧的值, 成立则返回true,不成立则返回false
<= 小于等于号 : -判断符号左侧的值是否不大于右侧的值, 成立则返回true,不成立则返回false
非数值的情况
对于非数值进行比较时,会先将其转换为数值在进行比较
任何值和NaN进行任何比较时都是false
特殊情况 : 如果符号两边都是字符串时,不会将其转换为数值,而是比较两个字符串的字符编码,
比较字符编码是是一位一位进行比较的,如果两位一样,则比较下一位,所以可以借用它对英文进行排序
在比较两个字符串型的数字时,一定记得转型
相等运算符
比较两个运算符是否相等,如果相等则返回true, 否则返回false
使用 == 来做相等运算
当使用 == 来比较两个值时,会做自动的类型转换,转换成相同的类型,再比较
undefind 衍生自 null ,所以这两个值做相等判断时,会返回true
NaN 不和任何值相等,包括它自己本身,可以通过isNaN() 函数来判断一个值是否是NaN,如果该值是NaN则返回true
不相等使用 !=来做运算,与 相等运算符 相反
=== 全等 用来判断两个值是否全等,他和相等类似,不同的是他不会做自动的类型转换,如果两个值的类型不同,直接返回false
!== 不全等 ,与全等相反
条件运算符
也叫三元运算符
语法: 条件表达式?语句1 : 语句2
流程 : 条件运算符在执行时,首先对条件表达式进行求值
如果该值为true,则执行语句1,并返回执行结果
如果该值为tfalse,则执行语句1,并返回执行结果
运算符的优先级
优先级越高越先计算,优先级一样,则从左往右计算
可以使用()括号改变优先级