运算符也叫作操作符,是用于实现赋值、比较和执行算数运算等功能的符号。
用来执行两个变量或值的算术运算
运算符 | 说明 | 举例 |
---|---|---|
+ | 加 | |
- | 减 | |
* | 乘 | |
/ | 除 | |
% | 取余数(取模) | 9 % 4 = 1 |
浮点数在算数运算中有问题
浮点数值的最高精确度是17位小数,但浮点数在算术运算中精确度却远远比不上整数。
例如:
var a = 0.1 + 0.2; // 结果是:0.30000000000000004;
所以不要直接判断两个浮点数是否相等。
如果需要反复给数字变量加或减1,那么可以使用递增(++)和递减(–)运算符来完成。
前置递增、前置递减:运算符在变量前面
如:++a 、–a;
后置递增、后置递减:运算符在变量后面
如:a++、a–;
++a,a++都相当于a=a+1;
但是++a先加1,再运算,
–a先用之前的值运算,再加1;
如:var a=2;
console.log(++a + 3); //结果是6
console.log(a++ + 3); //结果是5
两个数据进行比较时使用的运算符,比较运算后,会返回一个布尔值(true/false)作为结果。
运算符 | 说明 | 举例 | 返回值 |
---|---|---|---|
> | 大于 | 3>5 | false |
< | 小于 | 8<9 | true |
>= | 大于等于 | 8>=9 | false |
<= | 小于等于 | 6<=4 | false |
== | 判等号 | 45==45 | true |
!= | 不等号 | 89!=89 | false |
=== | 全等 (值和数据类型都要一样) | 55===‘55’ | false |
!== | 不全等 | 55!==‘55’ | true |
等号
运算符 | 说明 |
---|---|
= | 赋值,把等号右边的值赋给左边的变量 |
== | 判断两边值是否相等(此时有隐式转换,如:55 == ‘55’; //结果为true ) |
=== | 全等,只有两边数据的值、数据类型都相同的时候才为true |
用来进行布尔值运算的运算符,返回值还是布尔值,常用于多个条件的判断。
运算符 | 名称 | 说明 |
---|---|---|
&& | 逻辑与 /与/and | 两边都为true才返回true,其余为false |
|| | 逻辑或/或/or | 两边都为false才返回false,其余为true |
! | 逻辑非/非/not | 取反符,如 !true为false |
逻辑中断(短路运算)
原理:当有多个表达式或值的时候,左边的表达式已经可以确定结果了,那么右边的表达式就不再进行运算。
&&与
表达式1&&表达式2
如:
console.log( 23 && 99 ); // 99 console.log( 0 && 8 ); // 0 console.log( 455 && 489&& 567 ); // 567
逻辑或同理
把数据赋值给变量
运算符 | 举例 |
---|---|
= | var a=‘小小’;//直接赋值 |
+= 、-= | var a=2; a+=6; //相当于a=a+6;结果是8 |
*=、/=、%= | var a=2; a*=6; //相当于a=a * 6;结果是12 |
逻辑非优先级很高
逻辑与比逻辑或优先级高
优先级从高到低 | 运算符 | 顺序 |
---|---|---|
1 | 小括号 | () |
2 | 一元运算符 | ++、–、! |
3 | 算数运算符 | 先*、/、%后+、- |
4 | 关系运算符 | >、 >= 、<、 <= |
5 | 相等运算符 | 、!=、=、!== |
6 | 逻辑运算符 | 先&&后|| |
7 | 赋值运算符 | = |
8 | 逗号运算符 | , |
程序执行过程中,代码的执行顺序会影响执行结果。所以可以通过控制代码的执行顺序来实现我们想要的结果。
流程控制主要有三种结构:顺序结构 分支结构 循环结构
会按照代码的先后顺序,依次执行,程序中大多数的代码都是这样执行的。
根据不同的条件,执行不同的路径代码,得到不同的结果。
JS中有两种分支结构语句:if语句、switch语句。
if 语句
结构
if(条件表达式) {
条件成立时要执行的代码
}
注意:条件不成立时,什么也不做
if else 语句(双分支语句)
结构
if(条件表达式) {
条件成立时要执行的代码
} else {
条件不成立时执行的代码
}
if else if (多分支语句)
结构
if(条件表达式1) {
语句1;
}else if(条件表达式2) {
语句2;
}else if(条件表达式3) {
语句3;
}
…
else {
以上代码都不成立时要执行的代码
}