类型(一元)运算符 | +(正) -(负) ++(自增) --(自减) typeof(以字符串形式返回类型值) |
算术(二元)运算符 | +(加、字符串"连接"符) -(减) *(乘) /(除) %(求余) |
条件(三元/三目)运算符 | ?:(表达式1?表达式2:表达式3) |
赋值运算符 | = += -=( *= /= %= |
比较运算符 | > < >= <= == != ===(全相等) !==(不全相等) |
逻辑运算符 | &&(逻辑与) ||(逻辑或) !(取反) |
位运算符 | & | ~ ^ <<:按位左移 >>:按位右移 |
+(正) -(负)
对任何值前使用:+(正) -(负)
1、对于Number值,+代表(正)-代表(负)。
2、对于非Number类型值,它会先将其转换为Number类型值,然后再运算(原理和Number()一样)。
++(自增) --(自减)
自增自减运算符可以放到变量前或者后:++(自增:在原来的值上+1) --(自减:在原来的值上-1)
例如:
var a = 1;
var b = a++; //a++ 会导致 a = a + 1; a = 2;而 b = 1;(先赋值后运算)
var c = ++a; //++a 会导致 a = a + 1; a = 2;而 c = 2;(先运算后赋值)
+(加、字符串"连接"符) -(减) *(乘) /(除) %(求余)
总结:
1、任何值(和字符串做加法运算除外)和NaN运算都是NaN。
2、对非Number值(和字符串做加法运算除外)做算术运算都会自动转换为"Number值"再运算。【隐型转换】
4、对非String值和字符串做加法运算,都先转化为字符串型,然后再做拼接运算(将两个字符串连接到一起)。【隐型转换】
逻辑运算:针对不同的结果进行匹配,满足条件返回true,不满足返货false
&&:逻辑与,左边的条件与右边的条件同时成立(两边结果都为true)
||: 逻辑或,左边的条件或者右边的条件只要有一个满足即可
!: 逻辑非,对已有的条件进行取反,本身为true,取反结果就是false
注意:逻辑与和逻辑或又称之为短路运算:如果第一个表达式结果已经满足条件了,那么就不会运行逻辑运算符后面的表达式:在书写代码的时候,尽量将出现概率最高的(能够直接判断出结果)的表达式放到第一位。
补充:1、任意数据类型做两次非运算,即可转化为布尔值。
2、对于非布尔值进行运算时,会将其先转换为布尔值运算,最后返回原值。
赋值运算:符号是"=",表示将右边的结果(可以是变量、数据、常量和其他计算出来的结果),保存到内存的某个位置,然后将位置的内存地址赋值到左侧的变量(或常量)。
类似的还有以下常见赋值运算符:
+=:(加赋值)左边的结果与右边结果相加,然后赋值给左边。
-=(减赋值) *=(乘赋值) /=(除赋值) %=(求余赋值)
如:a += b;等价于 a = a + b;以此类推:
注意: 如果进行除非或者取余运算,那么要考虑右边表达式的结果是否为0
比较运算:比较两个数据的大小,或者两个内容是否相同(满足返回true,不满足返回false)
>:大于 >=:大于等于 <:小于 <=:小于等于
==:左边的与右边的形同(大小相同)
!=:左边的与右边的不同(大小不同)
===:全等于,左边与右边相同:大小以及数据的类型都要相同
!==:不全等于,只有大小或者类型不同
注意:
1、对于非Number值进行比较时,会将其自动转换为Number值然后再比较。
2、任何值和NaN进行比较都是false。
3、如果比较双方都是字符串型,则比较字符中的Unicode编码。
4、undefined衍生自null,这两值做相等(==)判断时,会返回true。
5、NaN不和任何值相等,包括他本身。(可以通过isNaN()函数来检查一个值是否为NaN)
三目运算:有三个表达式参与的运算(简单的分支结构缩写)
语法格式:
表达式1?表达式2:表达式3
运算:如果表达式1成立,那么执行表达式2,否则执行表达式3;
注意:如果表达式本身比较复杂,建议使用括号包起来。
位运算符:取出计算机中最小的单位(位bit)进行运算
&:按位与 |:按位或 ~:按位非 ^:按位异或 <<:按位左移 >>:按位右移
运算符 | 描述 |
. [] () | 字段访问、数组下标、函数调用以及表达式分组 |
++ -- - ~ ! delete new typeof void | 一元运算符、返回数据类型、对象创建、未定义值 |
* / % | 乘法、除法、取模 |
+ - + | 加法、减法、字符串连接 |
<< >> >>> | 移位 |
< <= > >= instanceof | 小于、小于等于、大于、大于等于、instanceof |
== != === !== | 等于、不等于、严格相等、非严格相等 |
& | 按位与 |
^ | 按位异或 |
| | 按位或 |
&& | 逻辑与 |
|| | 逻辑或 |
?: | 条件 |
= | 赋值、运算赋值 |
, | 多重求值、分割语句 |