JS中的运算符
算术运算 + - * / % ++ –
判断运算 === !==
比较运算 >= <= == > < !=
赋值运算 = += *= -= /=
逻辑运算 && || !
三目运算 表达式1 ? 语句1:语句2
!!表达式可以将任何数据类型转换为布尔值;
++ --
a++ ; ++a;
变量在前,称为前缀;变量在后,称为后缀
表达式的值:如果是前缀,表达式的值就是 变量改变之前的值
表达式的值:如果是后缀,表达式的值就是 变量改变之后的值
变量的值:不论是前缀还是 后缀 都会改变
let a =100;
console.log(a++ + ++a)
// 202,a++,‘++’在后先用a进行计算,再进行++,就是100 + ++a,算++a时,a++已经执行过了,所以a就是101,++a = 102,所以结果为202
conosle.log(a) // 102,最后就看++或--了几次,用最开始的数进行计算即可
let a=-1;
console.log(++a-1) // -1
console.log(a) // 0
let b=1,a=-1;
console.log(--b + ++a - b++) // 0
//a ? 0 a++了一次,所以+1即可
//b ? 1,b++,b--,相当于没有变
=
、==
、===
区别
= 赋值
== 判断值是否相等
=== 值和类型是都相等
console.log('' == 0) // true
console.log('false' == true ) // false
console.log(1 > '1') // false
console.log(0 == true) // false
console.log(0 == false) // true
console.log(1 == true) // true
cconosle.log(2 == true) // false
console.log(1 == 2) // false
console.log(null == undefiend ) // true
console.log(null == '' ) // false
- 隐式转换 在 表达式 和 if条件
if 条件中:
非0 表示true
非空字符串串 表示 true
let a = '111';
//任何的非空字符串 和 true false 在表达式中 进行直接比较得到的结论都是 false
console.log(a == true); //false
console.log(a == false); // false
//在if条件中
// 任何的非空字符串 表示 true
if (a) {
console.log('满足条件');
} else {
console.log('不满足条件');
}
- 逻辑运算符
&& 都为真 结果为真
|| 只要有一个为真 结果为真
! 单目运算 ! ++ –
1 && 5 // 5 只有所有值为true,才可能返回最后一表达式的值
0 && 5 // 0 遇假返回假
22 || 0 //22 遇真则真
let a =-1;
a++ && --a; //?-1 //a -1 【运算符优先级】
- 三目运算
a>b c=a c=b
a>b?c=a:c=b;
c=a>b?a:b;