JavaScript运算符和判断、循环语句(笔记)

1. 算数运算符

算数运算符描述实例
+11 + 22 = 33
-33 - 22 = 11
*10 * 8 = 80
/10 / 20 = 0.5
%取余数(取模)9 % 2 = 1

注意:js浮点类型的运算会出现问题

浮点类型的会转为二进制的位数为 64 位,然后在64位时会四舍五入,在转为十进制,这样就出现精度问题
单独写+会做数据类型转换、和字符串相加会拼接,两个数字相加会进行加法运算

2. 递增和递减运算符

  • 前置递增或递减,先自增或自减在参与运算,先自加 1 后返回值
  • 后置递增或递减,先参与运算再自增或自减,先返回原值后自加 1
  • 加加和减减的优先级比较高,但是在算数表达式中在执行到它们的时候才会影响这个变量的值
  • 因为在程序执行算数表达式时,是从左向右执行,右边的值不会影响左边的

3. 比较运算符(关系运算符)

比较运算符说明案例结果
>大于号2 > 1true
<小于号2 < 3true
>=大于等于号(大于或者等于)2 >= 2true
<=小于等于号(小于或者等于)2 <=2true
==判等号2 == “2”true
!=不等号2 != “2”false
===全等,要求值和数据类型都一致2 === “2”false
!==全不等,要求值和数据类型都不一致2 !== “2”true

=:赋值

==:比较值(只比值)

===:比较值和数据类型

4. 逻辑运算符

逻辑运算符说明案例结果
&&逻辑与(全部为真才为真、一个为假就为假)true && falsefalse
||逻辑或(一个为真就为真、全部为假才为假)true || falsetrue
!逻辑非(取反)!truefalse

4.1 逻辑中断

  • 逻辑与中断:找假值并返回最先找到的假值,如果没有找到就返回最后一个值
  • 逻辑或中断:找真值并返回最先找到的真值,如果没有找到就返回最后一个值

5. 赋值运算符

赋值运算符说明
=自接赋值
+=、-=、*=、/=、%=先本身和后面的数值进行计算,在赋值
var sum = 10

sum += 5  // sum = sum + 5 // 15

6. 运算符优先级

优先级运算符符号
1小括号()
2一元运算符++ – !
3算数运算符 * / % + -
4关系运算符> >= < <=
5相等运算符== != === !==
6逻辑运算符 && ||
7赋值运算符=
8逗号运算符,

注意:虽然 && 优先级大于 ||,但是按照程序执行算数表达式时,是从左向右执行,无法模拟出这种情况,

因为当 || 要找真时就直接找到并返回,后面的就已经短路了

// 逗号操作符:i = 0, j = 1, k = 2 等价于 i = 0; j = 1; k = 2 也就是说
// for循环可以这样写,多写一些限制条件,但是你自己把逗号改成分号不行,可以用表达式表达
for (let i = 0, j = 10; i <= j; i++, j--) {
  console.log(`i:${i},j:${j}`);
}

7. 判断语句

7.1 if

if (条件表达式) {
  // 满足当前条件时执行
} else if(条件表达试) {
  // 满足当前条件时执行
} else {
  // 全部条件都不满足时执行
}

7.2 switch

// 性能要比if高,switch是匹配,if是条件判断
// break防止case穿透,必须要书写,比如当第一个条件成立后,如果不写break,后面的代码都会执行
switch (key) {
  case value:
    // 满足当前条件时执行(key与value匹配)
    break;
  case value:
    // 满足当前条件时执行
    break;
  default:
    // case中所有条件都不满足时执行
    break;
}

7.3 三元运算符(三目)

三元运算符是简化版的if

条件表达式 ? 表达式1 : 表达式2

条件表达式为真时,执行表达式1,为假时执行表达式2

三目运算符也有返回值

8. 不可思议的相等和不相等

undefined == null // true
undefined == "" // false
null == " " // false
null == "" // false
NaN == NaN // false
"" == " " // false

9. 循环语句

9.1 for

for (初始值; 条件判断; 改变初始值的表达式) {
  // 循环体
}
// for循环执行顺序
// 1.初始值
// 2.条件判断
// 3.循环体
// 4.改变初始值的表达式
// 5.条件判断
// 6.循环体...
// 初始值只会执行一次

9.2 while

// 在不确定循环次数的时候可以使用while
// while的效率要比for高
while (条件表达式) {
  // 循环体
}

// 实例
var sum = 0
while (sum < 10) {
  	// 循环体
    sum++
}

9.3 do…while

// do...while至少循环一次
do {
  // 循环体
} while (条件表达式)

9.4 跳出循环与跳出当次循环

  • break:满足条件跳出循环,结束当层循环(指的是存在多层循环)
  • continue:满足条件跳出当次循环,进入下次循环

版权声明:本文为weixin_60547084原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。