day02 流程控制

运算符

算术运算符

  • +:求和
  • -:求差
  • *:求积
  • /:求商
  • %:取余(取余数(除完剩下的值)

赋值运算符

赋值简便写法

  • +=
  • -=
  • *=
  • /=
  • %=

读取顺序

  • 先+ :age + 5

  • 后=:age =age = age + 5

// age += 5 // 等价于: age = age + 5

调试工具

debugger

image-20220416102638086

一元运算符

问题:a+=1是几元运算符? a=a+1 ( 二元)

自增自减:

  • 重点:前置、后置在不参与运算时(单独的语句)结果时一样的,都会把加完的值返回;当参与运算时才会出现不一样的结果

  • ++放在变量的后面,是先使用这个变量,在下一次再使用这个变量时就已经加好了

    (不拘泥于是否下一个是前置还是后置,只要遇到下一个自己,就要提前算好再给人家

    let i =1 ;
    console.log(i++ + ++i + i);
    // i = 1
    //遇见下一个自己了  后置自增必须开始 i=2
    //前置自增直接生效  i=3
    //总结:1 (i=2)+(i=3) 3 + 3 =7
    
  • 注意

    • 这样连续的后置自增要特别注意,使用后置自增改变后的使用是在下一次

    • 比如下面的案例,并不是10+5=15;age=11 ;15+(11+1)=27,最后一个不是在运算过程中计算,是执行赋值

      console.log(c++ + 5 + c++) // 26  10+5=15 age=11 15+11=26 age=12
      
    • ++在变量的前面,先执行自增或自减,再使用这个变量

比较运算符

  • >: 左边是否大于右边

  • <: 左边是否小于右边

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

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

  • ==: 左右两边是否相等,将两边的数据进行转换为数值(值相等)

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

  • !==: 左右两边是否类型和值不全等

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

    比较结果为boolean类型,即只会得到true或false

console.log('2 == 2: ', '2' == 2);//true
  • 注意

    • NaN不等于任何值,包括它本身

    • 尽量不要比较小数,因为小数有精度问题

  • 不同类型之间比较会发生隐式转换
    最终把数据隐式转换转成number类型再比较
    所以开发中,如果进行准确的比较我们更喜欢 === 或者 !==

逻辑运算符

类型

符号 名称 日常读法 特点 口诀
&& 逻辑 并且 符号两边都为true结果才为true 一假则假
|| 逻辑 或者 符号两边有一个true就为true 一真则真
! 逻辑 取反 true变false false变true 真变假,假变真

使用技巧

短路

原因:通过左边能得到整个式子的结果,因此没必要再判断右边

1 > 2 || console.log('会输出');
1 < 2 || console.log('不会输出') 

​ 运算结果:无论 && 还是 || ,运算结果都是最后被执行的表达式值,一般用在变量赋值

res = 0 && 1
if(res==0){
    console.log('yes')
}else{
    console.log('error')
    
}
符号 短路条件
&& 左边为false就短路
|| 左边为true就短路

image-20220416160145813image-20220416160223214image-20220416160145813image-20220416160223214

⭐逻辑为假的数据类型

​ false null undefined "" 0 NaN

⭐逻辑为真的数据类型

​ true "字符串里面有值" 数字非0(包括负数) 数组Array 对象Object

image-20220418090027315

运算符优先级

计算判断赋值

image-20220416161742954

注意:

​ 一元运算符里面的逻辑非优先级最高

​ 逻辑与(&&)比逻辑或(||)优先级高

​ 优先级不等于执行顺序,执行顺序永远是从上到下,从左到右

语句

表达式和语句

  • 表达式:
    表达式通常会在原地返回一个值; 代码较短
console.log(x=7)// 7
  • 语句:
    js 整句或命令,用来描述一件事情,代码量比较长
    比如: if语句 for 循环语句

分支语句

  • If分支语句
    • 单分支
    • 双分支(三元表达式)
    • 多分支

image-20220416170751272image-20220416170821605image-20220418092616832

  • 三元运算符

    其实是比 if 双分支 更简单的写法,有时候也叫做三元表达式
    符号:? 与 : 配合使用

  • 语法

    image-20220416180019535

// 任意俩数中最大值,返回最大值
        function getMax(nu1,nu2){
            // 判断
            if(nu1 > nu2){
                return nu1;
            }else{
                return nu2;
            }
            //同样效果
           return nu1 > nu2 ? nu1 :nu2;
        }

循环语句

断点与调试

1、debugger

2、在debugger的前提下,打开谷歌浏览器单击行代码

image-20220418093202022

while 循环

语法
while(循环条件){
	需要重复执行的代码(循环体)
}
循环三要素
  • 变量起始值
    终止条件(没有终止条件,循环会一直执行,造成死循环)
    变量变化量(用自增或者自减)

image-20220416182558466

posted @ 2022-04-19 16:46  莐亓  阅读(25)  评论(0)    收藏  举报