运算符
算术运算符
- 加减乘除:
+
-
*
/
- 取余数:
%
- 自增:
++
i++;
等同于i = i+1;
++
在变量之前,先自增再使用
++
在变量之后,先使用再自增 - 自减:
--
i++;
等同于i = i+1;
--
在变量之前,先自增再使用
--
在变量之后,先使用再自增
其中自增和自减符号是在变量被使用的情况下才满足上述规则。
如下代码所示
let a = 1, b = 1, c = 1, d = 1;
console.log(`a的值为`);
console.log(a++);//在使用a的同时用了自增,则先使用再自增,输出1
console.log(a);//上一步操作自增后,a的值为2,输出2
console.log(`b的值为`);
console.log(++b);//先自增再使用,自增后b的值为2,输出2
c++;//在这一行没有使用c,只是在进行自增,则不论++在前还是在后,执行这行代码后,c的值都为2
console.log(`c的值为`);
console.log(c);//输出2
++d;//同理c
console.log(`d的值为`);
console.log(d);//输出2
输出结果:
a的值为
1
2
b的值为
2
c的值为
2
d的值为
2
赋值运算符
=
+=
-=
*=
/=
%=
a+=b;
等同于 a=a+b;
其余类似
逻辑运算符
【前提】
在逻辑运算符会将左右两侧的值转换为布尔值来进行判断
除了以下转换为false的,其他都转换为true
0,空字符串,null,undefined,NaN,false
逻辑与 &&
一假全假
//注:数值在判断语句中会自动转换成布尔型输出,但这里是输出语句,不会将输出的值转换,所以输出里面的数值,而不是布尔值
//从左至右判断,遇到假才会停止并输出假;若没有假则输出最后一个
console.log(1 && 2 && 3);//输出3
console.log(1 && 0 && 3);//输出0
逻辑或 ||
一真全真
//从左至右判断,遇到真才会停止并输出真;若没有真则输出最后一个
console.log(1 || 2 || 3);//输出1
console.log(1 || 0 || 3);//输出1
逻辑非 !
取反
三目运算符
书写格式:
条件 ? 表达式1 : 表达式2 ;
功能:
条件为true,执行表达式1
条件为false,执行表达式2
let i = 1 < 2 ? `正确` : `错误`;
console.log(i);//输出正确
let j = 3 < 2 `正确` : `错误`;
console.log(j);//输出错误
//这里的 1<2 和 3<2 都是条件
【扩展】
解构运算符
赋值符号左右的数据类型(括号类型)要一致
1、交换两个变量的值
//交换两个变量的值
let i = 1;
let j = 2;
[i, j] = [j, i]
console.log(i, j); //2,1
2、批量赋值
//批量赋值
let [a,b,c]=[1,'a',3];
console.log(a,b,c);//1 a 3
let arr = ["A", "B", "C", true, false];
let [x,y]=arr;
console.log(x,y);//A B
扩展运算符(…)
如代码所示
let str ='123';
let arr1=['a','b','c'];
let arr2=[...str];
console.log(...str);//1 2 3
console.log(...arr1);//a b c
console.log(arr2);//[ '1', '2', '3' ]