Javascript中的运算符,本质上就是参与运算的各种符号,主要有以下几种分类:
1,算术运算符
2, 赋值运算符
3, 一元运算符
4, 比较运算符
5, 逻辑运算符
1,算术运算符
算术运算符也叫数学运算符
| 符号 | 作用 |
|---|---|
| + | 求和 |
| - | 求差 |
| * | 求积 |
| / | 求商 |
| % | 取模(也叫取余数),开发中经常用来判断某个数字是否被整除 |
重点记住 %(取模)),开发中经常用来判断某个数字是否被整除,应用场景如下
<script>
console.log(3 % 5) //输出的结果是3, 因为3/5 的余数是3
console.log(5 % 3)//输出的结果是2, 因为5/3 的余数是2
</script>
2, 赋值运算符
赋值运算符:对变量进行赋值的运算符
| 符号 | 作用 |
|---|---|
| = | 将右边的值赋予给左边,要求左边必须是一个容器 |
| += | 让变量增加,并且更新变量, 如num += 3, 等同于num = num +3 |
| - | 让变量减少,并且更新变量, 如num -= 5, 等同于num = num - 5 |
| *= | 让变量相乘,并且更新变量, 如num *= 6, 等同于num = num * 6 |
| /= | 让变量相除,并且更新变量, 如num /= 8, 等同于num = num / 5 |
| %= | 让变量取模,并且更新变量, 如num %= 9, 等同于num = num % 5 |
赋值运算符中常用的是+=,其他的都用的比较少
3, 一元运算符
开发中根据表达式的个数,分为一元运算符、二元运算符、三元运算符
一元运算符, 指的是1个表达式参与运算,比如正负号 +,-
以前让变量每次+1,主要是以下两种写法,写起来比较麻烦:
<script>
let num = 1
num = num + 1
</script>
或者
<script>
let num = 1
num += 3
</script>
现在有更简单的办法, 比如一元运算符++
| 符号 | 作用 |
|---|---|
| ++ (自增运算符) | 让变量的值+1 |
| -- (自增运算符) | 让变量的值-1 |
**开发中使用较多的主要是自增运算符 ++ **
自增运算符又分为前置自增和后置自增
1, 前置自增 写法:
<script>
let num = 1
++num //相当于num +=1 或者 num = num +1
console.log(num) //输出 2
</script>
2, 后置自增写法:
<script>
let num = 1
num++
console.log(num) //输出 2
</script>
开发中后置自增使用较多
两者的区别:
1,前置自增和后置自增单独使用是没有区别
2,但是参与运算时就有区别
比如:
<script>
let num = 1
console.log(num++ +2) //结果是 3, num++先参与运算,运算输出完毕后自加1
</script>
<script>
let num = 1
console.log(++num +2) //结果是 4 ++num先自加1变成2, 再参与运算
</script>
记忆口诀:加价在前,先加;加加在后,后加
4, 比较运算符
| 符号 | 作用 |
|---|---|
| 左边是否大于右边 | |
| < | 左边是否小于右边 |
| >= | 边是否大于或等于右边 |
| <= | 左边是否小于或等于右边 |
| == | 左右两边值是否相等 |
| === | 左右两边是否类型和值都相等 |
| !== | 左右两边类型和值是否不全等 |
| != | 左右两边值是否不全等 |
重点记住:==, ===, !==
几种等号的对比:
| 符号 | 作用 |
|---|---|
| = | 赋值 |
| == | 判断值是否相等 |
| === | 判断值和类型相等 |
开发中判断是否相等推荐使用===
案例:
<script>
console.log(2 == 2) //true
console.log(2 == '2') //true
console.log(2 === '2') //false. 因为数字2和字符串'2'类型不相等
console.log(2 !== '2') //true
console.log(2 != '2') //false,因为数字2和字符串'2'值相等
console.log(NaN=== NaN) //false
console.log(undefined=== NaN) //false
</script>
注意:*
1,NaN不等于任何数据,包括它自己*
1,undefined 和 NaN 也不全等*
5, 逻辑运算符
使用场景:解决多重条件判断
之前判断一个数大于5并且小于10, 主要是这样写的: 5<num<10,
但是这种写法是错误的,正确的写法如下: num>5 && um<10
其中用到的就是逻辑运算符
逻辑运算符的分类
1,逻辑与 && --一假则假
<script>
console.log(true && false) //输出 false
console.log(2>3 && 2>1) //false
console.log(3>1 && 3<5) //true
</script>
2,或 || --一真则真
<script>
console.log(true && false) //输出 true
console.log(2>3 && 2>1) //true
console.log(3>1 && 3<5) //true
</script>
3,非 ! -- 取反
<script>
console.log( !false) //输出 true
console.log(!2>3) // true
console.log(!3>1) //false
</script>
6,运算符优先级
小结:
一元运算符里面的逻辑非优先级很高
逻辑与比逻辑或优先级高