JavaScript运算符详解说明
运算符是完成一系列运算操作的符号。
算术运算符
算术运算符用来在程序中进加、减、乘、除等运算。
运算符 | 描述 |
---|---|
+ | 加运算符 |
- | 减运算符 |
* | 乘运算符 |
/ | 除运算符 |
% | 求模运算符 |
++ | 自增运算符。(i++:先使用,再自增;++i先自增再使用) |
– | 自减运算符。(i–:先使用,再自减;–i先自减再使用) |
let num1=10,num2=20,num3=30,sum
console.log(num1+num2); // 加运算
console.log(num1-num2);// 减运算
console.log(num1*num2);// 乘运算
console.log(num1/num2);// 除运算
console.log(num1%num2);// 求模运算
console.log('sum', num1++);// 自增运算
console.log(++num1);// 自增运算
console.log('--',num1--);// 自减运算
console.log(--num1);// 自减运算
结果
比较运算符
比较运算符用于对两个操作符进行比较
运算符 | 描述 |
---|---|
< | 小于运算符 |
> | 大于运算符 |
<= | 小于等于运算符 |
>= | 大于等于运算符 |
== | 等于运算符。只根据表面值进行判断,不判断数据类型 |
=== | 恒等于运算符。根据值和数据类型同时进行判断。全部相等才为真 |
!= | 不等于运算符。只根据表面值进行判断,不判断数据类型 |
!== | 不绝对等于。根据值和数据类型同时进行判断。全部相等才为真 |
let num1=10,num2=20,num3='10',sum
console.log(num1<num2);
console.log(num1>num2);
console.log(num1<=num2);
console.log(num1>=num2);
console.log('==',num1==num3);
console.log(num1===num3);
console.log('!=',num1!=num3);
console.log(num1!==num3);
结果
赋值运算符
比较运算符用于对两个操作符进行比较
运算符 | 描述 | |
---|---|---|
= | 将右边表达式的值赋给左边的变量 | |
+= | 将运算符左边的变量加上右边表达式的值,再将结果赋值给左边的变量 | a+=b,相当于a=a+b |
-= | 将运算符左边的变量减去右边表达式的值,再将结果赋值给左边的变量 | a-=b,相当于a=a-b |
*= | 将运算符左边的变量乘以右边表达式的值,再将结果赋值给左边的变量 | a *=b,相当于a=a*b |
/= | 将运算符左边的变量除以右边表达式的值,再将结果赋值给左边的变量 | a/=b,相当于a=a+b |
%= | 将运算符左边的变量用右边表达式的值求模,再将结果赋值给左边的变量 | a%=b,相当于a=a%b |
|= | 将运算符左边的变量与右边表达式的值进行逻辑与运算,再将结果赋值给左边的变量 | a|=b,相当于a=a|b |
^= | 将运算符左边的变量与右边表达式的值进行异或运算,再将结果赋值给左边的变量 | a=b,相当于a=ab |
let num1=30,num2=20,num3=10,sum
console.log('sum:',sum=num2);
console.log('sum:','num1:', num1,num1+=num2);
console.log('sum:','num1:', num1,num1-=num2);
console.log('sum:','num1:', num1,num1*=num2);
console.log('sum:','num1:', num1,num1/=num2);
console.log('sum:','num1:', num1,num1%=num2);
console.log('sum:','num1:', num1,num1&=num2);
console.log('sum:','num1:', num1,num1|=num2);
console.log('sum:','num1:', num1,num1^=num2);
结果
逻辑运算符
比较运算符用于对两个操作符进行比较
运算符 | 描述 | 详解 |
---|---|---|
&& | 逻辑与 | a && b 。当a和b都为真时,结果才为真,否则为假 |
|| | 逻辑或 | a || b 。当a和b至少有一个为真时,结果才为真,否则为假 |
! | 逻辑非 | !a。当a为真时,结果为假,否则为真 |
// &&: 两边都为真结果才为真(true);否则为假(false);
// 只要一边结果是错误的,返回值就是false
console.log(3 > 6 && 3 > 1); // false
console.log(3 > 2 && 3 > 1); // true
console.log(6 < 5 && 5 > 4); // false
// ||: 两边结果都为假结果才为假(false);否则为真
// 只要一边结果是正确的,返回值就是true
console.log(3 > 6 || 3 > 1); // true
console.log(3 > 2 || 3 > 1); // true
console.log(3 > 6 || 3 < 1); // false
// ! :也称为取反符,用来取一个布尔值相反的值
console.log(!true);
console.log(!false);
结果
三目运算符
操作符?结果1:结果2
表示:如果操作符的值为true,则整个表达式的结果为‘结果1’,否则为‘结果2’。
let time= 10, time2= 6
console.log(time < 10 ? '0' + time : time);
console.log(time2 < 10 ? '0' + time2 : time2);
结果
位操作运算符
运算符优先级
优先级 | 结合 | 运算符 | 说明 |
---|---|---|---|
1 | 向左 | .、[]、() | 字段访问、数组索引、函数调用和表达式分组 |
2 | ++ 、–(自减)、-、!、delete、typeof、new、void | 一元运算符、返回数据类型、对象创建、未定义的值 | |
3 | 向左 | *、/、% | 相乘、相除,求余数 |
4 | 向左 | +、- | 相加、相减、字符串串联 |
5 | 向左 | << 、>>、>>> | 左位移、右位移、无字符号右移 |
6 | 向左 | <、<=、>、>=、in、instanceof | 小于、小于或者等于、大于、大于或者等于、是否为特定类的实例 |
7 | 向左 | == 、!= 、=== 、 !== | 相等、不相等、全等、不全等 |
8 | 向左 | & | 按位”与“ |
9 | 向左 | ^ | 按位”异或“ |
10 | 向左 | | | 按位”或“ |
11 | 向左 | && | 逻辑与 |
12 | 向右 | || | 逻辑或 |
13 | 向右 | ?: | 条件运算符(也称三目运算符) |
14 | 向右 | *=、/=、%=、+=、-=、<<=、>>=、>>>=、&=、^=、|= | 混合赋值运算符 |
15 | 向左 | , | 多个计算 |
优先级数字越小,表示优先级越高
附加解释
delete运算符
delete运算符是一个一元运算符。
作用:它将删除运算数所指定的对象的属性。数组元素或者变量。删除成功返回true,失败返回false。
void运算符
void运算符是一个一元运算符。
作用:它出现在操作数之前,操作数可以是任意类型,操作数会照常计算,但忽略计算结果并返回undefined。
instanceof运算符
作用:instanceof就是检查某个实例是否是由某个类或其子类实例化出来的