JavaScript—运算符
算术运算符
概念:算术运算使用的符号,用于执行两个变量或值的算术运算。
运算符 | 描述 | 例子 |
+ | 加 | 1+1-2 |
- | 减 | 1-1=0 |
* | 乘 | 1*1=1 |
/ | 除 | 1/1=1 |
% | 取模(取余数) | 1%1=0 |
算数运算符
console.log(1 + 1);
console.log(1 - 1);
console.log(1 * 1);
console.log(1 / 1);
console.log(1 % 1);
注意:浮点数的最高精确值是17位小数点,但是在进行算术运算时精度远不如整数。(不要直接判断两个浮点数相等)
算术运算符优先等级:先乘除,后加减,有先括号优先计算。
表达式和返回值
表达式:是由数字,运算符、变量等以能求得数值的有意义排列方法所得的组合。(由数字、运算符、变量等组成的式子)
查看代码
console.log(1 + 1);//直接输出表达式“1+1”的结果,2是返回值
var a = 1 + 1;//计算右边表达式把返回值给左边
console.log(a);
在程序中表达式从右往左运算。
递增和递减运算符
需要反复给一个变量加或减1,可以使用递增(++)或递减(--)运算符来完成。
在JavaScript中,递增和递减既可以放在变量前,也可以放在变量后。放在前称为前置递增(递减)运算符,放在变量后称为后置递增(递减)运算符。
注意:递增和递减运算符必须和变量配合使用。
前置递增运算符
++a前置递增,就是自加1,类似于a=a+1。(使用口诀:先自加,后返回值)
前置自增
var a = 1;
console.log(++a);//输出结果为2
后置递增运算符
a++后置递增,就是自加1,类似于a=a+1。(使用口诀:先返回值,后自加)
后置自增
var a = 1;
console.log(a++);//输出结果为1
前置递增和后置递增单独使用效果一样。
前置与后置区分
var a = 1;
var b;
b = a++ + ++a;
console.log(b);
比较运算符
概念:比较运算符(关系运算符)是两个数据进行比较时所用的运算符,比较运算后,返回一个布尔值(ture/false)作为比较结果。
运算符名称 | 说明 | 例子 | 结果 |
< | 小于号 | 1<0 | false |
> | 大于号 | 1>0 | ture |
>= | 大于等于号 | 1>=0 | ture |
<= | 小于等于号 | 1<=0 | false |
== | 判等号(会转型) | 1==0 | false |
!= | 不等号 | 1!=0 | ture |
=== !== | 全等号,要求值与类型一致 | 1==='1' | false |
比较运算符
console.log(1 > 0);
console.log(1 < 0);
console.log(1 >= 0);
console.log(1 <= 0);
console.log(1 == 0);
console.log(1 != 0);
console.log(1 === '1');
console.log(0 !== '0');
逻辑运算符
概念:逻辑运算符是用来进行布尔值运算的运算符,其返回值也是布尔值。后面开发中经常用于多个条件的判断。
逻辑运算符 | 说明 | 案例 |
&& | “逻辑与”,简称“与”and | ture &&false |
|| | “逻辑或”,简称“或”or | ture||false |
! | “逻辑非”,简称“非”not | !ture |
逻辑与&&:两边为真(true)才为真(true),一侧为假则是假。
逻辑或||:两边为假(false)才为假(false),一侧为真则是真。
逻辑非!:用于取一个布尔值相反的值。(取反符)。
逻辑运算符
console.log(1 > 0 && 0 > 1);
console.log(1 > 0 || 0 > 1);
console.log(!true);
短路运算(逻辑中断)
原理:当多个表达式(值)时,左边的表达式可以确定结果时,不再运算右边的表达式的值。
逻辑与短路:如果表达式1为真,直接返回表达式2,反之,直接返回表达式1。
如果有空或者否定的为假,其余为真例如0、''、null、undefined、NaN均为假。
逻辑与中断
console.log(1 && 2);
console.log(0 && 1);
console.log(0 && 1 + 1 && 1 + 0);
逻辑或短路:如果表达式1结果为真,则返回表达式1。反之返回表达式2。
逻辑或中断
console.log(1 || 0);
console.log(1 || 1 || 0);
console.log(0 || 1 || 2);
赋值运算符
概念:用来把数据赋值给变量的运算符。
赋值运算符 | 说明 | 例子 |
= | 直接赋值 | var name='example'; |
+=、-= | 加、减一个数后赋值 | var age=10;age+=1 |
*=、/=、%= | 乘、除、取模后赋值 | var age=1;age*=5 |
赋值运算符
var a = 1;
console.log(a += 1);//等价于a=a+1
console.log(a -= 1);//等价于a=a-1
console.log(a *= 1);//等价于a=a*1
运算符优先级
优先级 | 运算符 | 顺序 |
1 | 小括号 | () |
2 | 一元运算符 | ++ -- ! |
3 | 算数运算符 | 先* / %后+ - |
4 | 关系运算符 | > >= < <= |
5 | 相等运算符 | == != === !== |
6 | 逻辑运算符 | 先&&后|| |
7 | 赋值运算符 | = |
8 | 逗号运算符 | , |
一元运算符中逻辑非优先级很高
逻辑与比逻辑或优先级高
运算符优先级
onsole.log(1 >= 0 || '鬼' != '人' && !(1 + 0 == 0) && true);
var a = 1
console.log(1 == 1 / 2 && (2 + 2 * a).toLocaleString() === '2');