1、 算术运算符
- “+”运算符
- 对数字进行代数求和
- 对字符串进行拼接操作
- 字符串+字符串
- 字符串+数值/数值+字符串(将数值转换成字符串再拼接)
- 将数值转换成字符串
数值+空字符串
- “-“运算符
- 单面运算(对操作数进行取反操作)
- 减法(对两个运算数进行减法运算)
- 将字符串转换成数值/数值型字符串-0
- “*”运算符
- 对两个运算数进行乘法运算
- 正/负(同号得正,异号得负)
- “/”运算符
- 对两个数进行除法运算
- 正/负(同号得正,异号得负)
- “%”运算符
- 对两个运算数进行求余运算
- 与第一个运算数的符号相同
- 赋值运算符
- +=、-=、*+、%=
2、 自增/自减
- “++” 对运算数进行递增操作(每次加1)
- “–”对运算数颈向递减操作(每次减1)
- 规则
- 运算数必须是一个变量,数组中的一个元素或者对象的属性
- 如果运算数是非数值自动转换成数值
- 符号位置决定运算结果(1.运算数之前 先执行递增运算,再求值 2.运算值之后 先求值 再递增)
3、关系运算符
- 大小关系
- ”<”运算符
- ifA小于B,返回值是true,否则为false
- “<=”运算符
- ifA小于等于B,返回值是true,否则为false
- “>”运算符
- if大于B,返回值是true,否则为false
- “>=”运算符
- ifA大于等于B,返回值是true,否则为false
- 规则
- 数值与数值的比较,比较他们的运算值
- 仅一个运算数为数值 将另一个运算数转换为数值,并比较他们的代数值
- 字符串之间的比较 将其转换成字符串进行比较
- 运算数非数值也非字符串 转换成数值或字符串进行比较
- 运算数无法转换成数值或字符串 返回值是false
- 与NAN的比较 返回值是false
- 等值关系
- 相等比较
- “==” 比较两个运输数的返回值是否相等
- “!=”比较两个运算数的返回值是否不相等
- 类型转换
- bool值 true>=1;false<=0
- 对象 调用valueOf()基本数据类型
- 字符喜欢与数值 字符串转换成数值
- 相等比较
- “===” 比较两个返回数的返回值以及数据类型是否相等
- “==” 比较两个数的返回值是否相等
- “!==” 比较两个数的返回值及数据类型是否不相等
- 比较原则
null==undefined //ture
NaN
与任何数值都不相等包括自身- 对象 是否属于同一对象(是否指向内存中同一内存空间)
- 值类型间比较 只有数据类型相同且数值相等时,返回值为true
- 值类型与引用类型比较 肯定不同,返回值是false
- 引用类型比较 比较它们的引用值(内存地址)
4、对象运算符
- in 判断左侧运算数(string)是否为右侧运算数(object)的成员
- instranceof 判断左侧实例是否属于右侧类或者构造函数
- new 根据构造函数创建一个新的对象 并初始化该对象
- delete 删除指定对象的属性、数组元素或变量
- .及[] 存取对象和数组元素
- () 函数调用、改变运算符优先级
5、逻辑运算符
- !逻辑非
- 返回值是true 例如:(空字符串、0、null、NaN、undefined)
- 返回值为false时 例如:(对象、非空字符串、非0数值(Infinity))
- 特性 : 1、如果运算数的值为false,则返回true,否则返回false 2、连续使用两次!可将任意类型转换成布尔值
- &&逻辑与
- 规则
- 第一个运算数是对象,返回第二个运算数
- 第二个运算数是对象,第一个运算数值为true时,返回该对象,否则返回第一个运算数
- 两个运算数都是对象,返回第二个运算数
- 一个运算数为null,返回为null
- 一个运算数为NaN,返回NaN
- 一个运算数为undefined,返回undefined
- 特性
- 当两个运算数的值都是true时,才返回true,否则返回false
- 短路操作 :当有一个运算数的值为false则直接返回,不会再继续运算下去
- ||逻辑或
- 规则
- 第一个运算数是对象,返回第一个运算数
- 第一个运算数值是false返回第二个运算数
- 两个运算数都是对象,返回第一个运算数
- 两个运算数为null,返回null
- 两个运算数为NaN,返回NaN
- 两个运算数为undefined,返回undefined
- 特性
- 当且仅当两个运算数的值都为false才会返回false,否则返回true
- 短路操作 如果有一个运算数值为true,则返回该运算数,不再继续算下去
5、其他运算符
- ?:(三元运算符) 条件运算符 简单的if else
- typeof 类型判定运算符
- , 逗号,在一行语句中执行多个不同的操作
- void 舍弃元算数的值,返回undefined作为表达式的值