1、括号
被括号包裹的表达式会优先执行
/*在js代码执行时括号运算符会优先执行*/
let a = 10,
b = 2,
c = 3;
let expression = a * (b + c);
console.log(expression);//50
2、一元运算符
一元运算符包括 ++
,--
,!
+ + 运算符(自增运算符)
自增运算符分为前自增和后自增
- 前自增:先自增,然后参加运算
- 后自增:先参加运算,然后自增
代码:
/*前自增*/
let num = 10;
console.log(++num);//11
/*后自增*/
let num1 = 10;
console.log(num1++);//11
----------------------------------------------
//前自增与后自增的区别
let a = 10,
b = 10;
console.log('和为:'+parseInt(b+(++a)));//21----先自增再运算
console.log('a:'+a);//11
let c = 10,
d = 10;
console.log('和为:'+parseInt(d+c++));//20----先运算再自增
console.log('c:'+c);//11
- - 运算符(自减运算符)
自减运算符和自增运算符类似,分为前自减和后自减 ,自减特性和自增相似
!运算符(逻辑非)
/*! 运算符表示取反(反转表达式运算真假值)*/
let bool = true;
console.log(!bool);//false;
let num = 10;
console.log(!num);//false;
let num1 = 0;
console.log(!num1);//true
3、算数运算符 (=-*/%)
执行表达式的加减乘除
以及取模
操作
let num = 10;
console.log(num+10*10-50);//60
//%取模(取除法运算后的余数)---执行优先级大于+-
console.log(num%3);//1
console.log(num%2);//0
4、关系运算符(>,>=,<,<=)
let num1 = 10,
num2 = 20,
num3 = 10;
console.log(num1 > num2);//false
console.log(num2 > num3);//true
console.log(num2 >= num3);//true
·······
5、相等运算符 😃
相等运算符,
//相等运算符
let num = 10,
num1 = '10';
//==运算符两边的表达式结果相等则返回true,不限制类型(类型不一定相同)---等于运算符
console.log(num == num1);//true
//===运算符两边的表达式结果相等则返回true,限制类型(类型必须相同)-----全等运算符
console.log(num === num1);//false
//!=运算符两边表达式结果不同则返回true,相同返回false,不限制类型
console.log(num != num1);//false
//!==运算符两边的表达式结果不相等则返回true,相等返回false,限制类型(类型必须相同)
console.log(num !== num1);//true
6、逻辑运算符 (&&,||)
逻辑与 &&,逻辑或 ||
在js逻辑运算中,0、""、null、false、undefined、NaN都会判为false,其他都为true
/*如果时&&,则直接找false,有false直接返回false,没有则返回true*/
console.log(false&&false);//false
console.log(true&&true);//true
console.log(false&&true);//false
/*如果是||,则直接找true,有则直接返回true,没有返回false*/
console.log(false||true);//true
console.log(true||true);//true
console.log(false||false)//true
结合逻辑中断来看
逻辑中断
- 逻辑与中断
/*逻辑与中断*/
let un;//undefined
let a = 10,
b = true;
console.log(un&&a&&b);//undefined
console.log(b&&un&&a);//undefined
console.log(100&&a&&b);//true
逻辑与运算过程中,如果有表达式结果为false,则直接返回该表达式,否则直接返回运算式最后的表达式
- 逻辑或中断
/*逻辑或中断*/
let un;//undefined
let a = 10,
b = true;
console.log(un||a||b);//10
console.log(b||un||a);//true
console.log(false||0||un);//undefined
逻辑与运算过程中,如果有表达式结果为true,则直接返回该表达式,否则直接返回运算式最后的表达式
7、赋值运算符 =
将运算符左边表达式的值赋值给左边的变量
当“=”两侧数据类型不一致时,可以使用自动类型转换或使用强制类型转换原则进行处理。
- 扩展赋值运算符(+=,-=,*=,/=,%=)
let num = 100;
num += 10;//相当于 num = num + 10;
console.log(num);//110
num -= 10;//相当于 num = num - 10;
console.log(num);//100
num *= 10;//相当于 num = num * 10;
console.log(num);//1000
num /= 10;//相当于 num = num / 10;
console.log(num);//100
num %= 10;//相当于 num = num % 10;
console.log(num);//0
8、逗号运算符
作用是将若干表达式连接起来,优先级式所有运算符中优先级最低的
let a = 1 ,b = false, c = a + 10;
console.log(a,b,c)//1 false 11
9、运算符优先级
优先级 | 运算符 | 顺序 |
---|---|---|
1 | 小括号 | () |
2 | 一元运算符 | ++ -- ! |
3 | 算数运算符 | 先* / %后+ - |
4 | 关系运算符 | > >= < <= |
5 | 相等运算符 | == != === !== |
6 | 逻辑运算符 | 先&& 后|| (实际上会因为逻辑中断而有所不同,从左至右执行) |
7 | 赋值运算符 | = 扩展:+= -= *= /= %= |
8 | 逗号运算符 | , |
- 一元运算符里面的逻辑非优先级更高
- 逻辑与比逻辑或优先级更高
--------end--------