流程控制

41 阅读4分钟

运算符

算数运算符

  • +``-``*``/``%

优先级:

  • *``/``%优先级相同
  • +``-优先级相同
  • *``/``%大于+``-
  • 优先级相同时从左向右执行
  • 有括号的先算括号内的
  • 总结:按照基本的数学运算方法来计算

赋值运算符

  • 对变量进行赋值的运算符,例如=
  • 要求左边必须是一个容器,右边是要赋的值
  • +=``-=``*=``/=``%=都是赋值运算符
  • 可以在对变量赋值时进行快速的操作
let num = 1
num += 3
console.log(num)
/*结果为4*/
  • 可以让代码简化

一元运算符

  • + -号都是一元运算符
  • 用于计数使用,计算进行了多少次了
  • ++变量加一
  • --变量减一

前置自增

  • ++ i
  • 先自加再运算
  • ++在前先加
let i =1
console.log(++i + 2)
/*结果为4
i=1+1=2
2+2=4
*/

后置自增

  • i ++
  • 先运算再自加
  • ++在后后加
let i =1
console.log(i++ + 2)
/*结果为3
1+2=3
i =1+1=2
*/

前置自增和后置自增单独使用时没有区别

一般开发都是单独使用

i++使用较多即先计算再自增

比较运算符

> : 左边是否大于右边

<: 左边是否小于右边

>=: 左边是否大于或等于右边

<=: 左边是否小于或等于右边

==: 左右两边是否相等只判断数值不看数据类型

  • 常用

===: 左右两边是否类型和值都相等

!==: 左右两边是否不全等

  • 比较两个数的大小、是否相等
  • 比较的结果为boolean类型,只会得到true或false

细节

  • 字符串比较的是对应的ASCII码
  • 从左向右,第一位一样比较第二位
  • 了解
  • NaN不等于任何值包括它本身
  • 尽量不比较小数,有精度问题
  • 不同类型的比较会发生隐式转换,都会转换成number类型
  • ==为了进行准确的比较通常使用

===: 左右两边是否类型和值都相等

!==: 左右两边是否不全等

逻辑运算符

作用:用来解决多重条件的判断

  • 与、或、非
  • 并且、或者、取反
  • &&``||``!
  • 一假则假&&
  • 一真则真||
  • 真变假,假变真!

细节

  • !连续使用两次可将任意类型转换为布尔型值

短路:只存在于 与 和 或 中

  • 当第一个操作数的值是false不对第二个操作数求值,结果直接为false
  • 第一个操作数是对象,返回第二个操作数
  • 第二个操作数是对象,第一个为true时返回该对象
  • 两个操作数都是对象,返回第二个操作数

位运算符

其他运算符

运算符的优先级

表达式和语句

  • 表达式可以求值 有结果
  • 语句不一定有结果

分支语句

流程控制语句

  • 顺序结构:由上到下
  • 分支结构:根据条件执行代码
  • 循环结构:将某段代码重复执行

分支语句

  • 有选择性的执行代码
  • 分为:If分支,三元,switch

if语句

  • 单分支:if (条件为true){要执行的代码}
  • 双分支:if (条件为true){要执行的代码} else {要执行的代码}
  • 多分支:if (条件为true){要执行的代码} else if (条件为true){要执行的代码} else {要执行的代码}

三元运算符

  • ? :
  • 简化 双分支if 语句
  • 一般用来取值(返回到变量)
let num = prompt ('输入数字')
//返回一个变量方便后期使用
let time = num < 10 ? '0' + num : num 
console.log (time)
alert (time)

switch语句(了解)

  • 判断全等
  • 没有全等执行default的代码
        switch (2) {
            case 1:
                alert (1)
                break
            case 12:
                alert (1)
                break
            case 13:
                alert (1)
                break
            default:
                alert('以上都不是')
                break
        }
  • 如果没有break会发生switch的穿透效果,代码向下执行到底

循环

  • while
  • 死循环:while (true)代码一直重复执行,自己不会停止
  • 循环三要素必须同时具备否则变死循环:变量起始值、终止条件、变量变化量(用自增或自减)
  • 循环的退出

break终止循环 配合if

continue结束本次循环,执行下一次 continue前要加 i++ 不会产生死循环

//计算1-1000之间的和用户输入一个数, 计算 1 到这个数的和。 
let i = 1
let sum = 0
while (i<=100) {
	sum = sum + i 
	i++
}
console.log(sum);
let sum = 0
        let i = 1
        while (i <= 100) {
            if (i % 10 !== 3) {
                sum = sum + i
            }
            i++
        }
        console.log(sum)