美文网首页
丸子学JS(学习1小时 - 流程控制)

丸子学JS(学习1小时 - 流程控制)

作者: 丸子小姐__不懂爱 | 来源:发表于2023-11-21 16:01 被阅读0次

循环语句

  • while
    a. 用法
while(条件表达式){
  循环执行代码段
}

b. 流程 (判断条件表达式的值,当值为true时循环执行代码段,当值为false时退出循环体)
c. 特性 (先检查条件,再执行循环,条件不满足则循环一次也不执行)
d. 时机 (一个动作被重复执行到满足某个条件时)


let oInp = document.querySelector('#inpValue')
let oUl = document.querySelector('ul')
let count = 0;
oInp.addEventListener('input', function() {
  count = this.value;
  while (count > 0) {
      let oLi = document.createElement('li')
      oUl.appendChild(oLi)
      count--;
  }
})
  • do-while
    a. 用法
do{
  循环执行的代码段
}
while(条件表达式)

b. 流程 (先执行循环体内代码段再进行判断,如果表达式的值为true,则重复执行代码段,如果表达式的值为false,则退出循环体)
c. 特性 (先执行循环体,在进行条件判断,循环体内代码至少执行一次)
d. 时机 希望一个动作至少被执行一次时


let oInp = document.querySelector('#inpValue')
let oUl = document.querySelector('ul')
let count = 0;
oInp.addEventListener('input', function() {
  count = this.value;
  do {
      let oLi = document.createElement('li')
      oUl.appendChild(oLi)
      count--;
  } while (count < 0);
})
  • for
    a.用法
for(循环变量=初始值; 循环条件; 递增/递减计数器){
  循环代码段
}

b. 流程 (用循环变量初始值与循环条件相比较,确定返回值,如果返回值为true则执行循环体,执行完一次后进行递增或递减运算,将运算结果与循环条件相比较,如果返回值为true则继续,如果返回false 则退除循环体)
c. 时机 重复一个动作到一定次数时


let oInp = document.querySelector('#inpValue')
let oUl = document.querySelector('ul')
let count = 0;
oInp.addEventListener('input', function() {
  count = this.value;
  for(let i=0; i<count; i++){
      setTimeout(function(){
          let oli = document.createElement('li')
          oUl.appendChild(oli) 
      },330*i );
  }
})
  • for...in
    a. 用法
for(声明变量  in 对象){
  代码段
}

b. 作用 枚举对象的属性
c. 注意事项 循环输出的属性顺序不可预测,对象的值不能是null或者 undefined


let obj = {
    chargeStandard: "38元/人",
    chargeStandardRemark: "儿童1.2米以下免费",
    drawingMapUrl: "/uploadFile/image/scenicSpot/123a94ec38ea4f10b8c588288d0cb674.jpg",
    drawingName: "2.jpg",
    endTime: "18:30",
    id: "SEVxSjFzZ2FQd2pPN2pVQ3JmRzRqdz09"
}
for(let key in obj){
    let p = document.createElement('p')
    p.innerHTML = `${key}: ${obj[key]}`
    oWrapper.appendChild(p)
}

跳转语句

  • return 终止函数体的运行,并返回一个值
  • break 终止整个循环,不再进行判断
let oInp = document.querySelector('#inpValue')
let oUl = document.querySelector('ul');
let oLis = document.querySelectorAll('li')
let count = 0;
oInp.addEventListener('input', function() {
  count = this.value;
  for(let i=0; i<count; i++){
      if(i === 3) {
          break;
      }else {
          setTimeout(function(){
              oLis[i].style.background = 'orange'
          },330*i );
      }
  }
})
  • continue 结束本次循环,接着去判断是否执行下次循环
let oInp = document.querySelector('#inpValue')
let oUl = document.querySelector('ul');
let oLis = document.querySelectorAll('li')
let count = 0;
oInp.addEventListener('input', function() {
  count = this.value;
  for(let i=0; i<count; i++){
      if(i % 2 !== 0) {
          continue;
      }else {
          setTimeout(function(){
              oLis[i].style.background = 'orange'
          },330*i );
      }
  }
})

选择语句

  • if
  1. 用法
if(条件表达式1){
    代码段1
}else if(条件表达式2){
    代码段2
}else {
    代码段3
}

2.流程 (判断条件1,如果返回true则执行代码段1,如果条件1的返回值为false,则跳过语句块1并检
测条件2,如果所有表达式的值均为false则执行else后面的语句)
3.特性 (结构复杂,可被嵌套;可测试多个条件表达式;表达式的值具有线性特征;表达式的值是动态的;适用于任意类型的数据;可处理复杂的逻辑关系)


let oInp = document.querySelector('#inpValue')
let oUl = document.querySelector('ul');
let oLis = document.querySelectorAll('li')
let count = 0;
oInp.addEventListener('input', function() {
  count = this.value;
  if(this.value % 2 === 0) {
      changeStyle(2)
  }else if(this.value % 3 === 0){
      changeStyle(3)
  }else {
      changeStyle(4)
  }
})
function changeStyle(num){
    for(let i=0; i<oLis.length; i++) {
        oLis[i].style.background = '#12ccfa'
      if(i % num === 0){
          oLis[i].style.background = 'orange'
      }
    }
}
  • switch
  1. 用法
switch(条件表达式){
    case 标签1:
    代码段1;
    break;
    ,,,,,
    default:
    代码段n;
}

2.流程 (计算表达式的值,并与各标签相比较,若找到与之匹配的标签,则执行其后的代码段,如果有找到与之匹配的标签则直接执行default之后的代码段)
3.格式 (case标签为常量,可以是字符串或数字,每个标签均以冒号结束,虽然break与default为可选项,但为了逻辑清晰最好不要省略,case标签的值必须和条件表达式的值完全匹配)
4.特性 (结构简介,专为多重选择设计; 仅可测试一条条件表达式;表达式的值只有离散性;表达式的值是固定的,不会动态的变化;仅能应用整数,枚举,字符串等类型数据;仅能处理多个枚举类型逻辑关系)


let oInp = document.querySelector('#inpValue')
let oUl = document.querySelector('ul');
let oLis = document.querySelectorAll('li')
let count = 0;
oInp.addEventListener('input', function() {
  count = Number(this.value);
  switch (count) {
      case 1:
          changeStyle(1)
          break;
      case 2:
          changeStyle(2)
          break;
      case 3:
          changeStyle(3)
          break;
      case 4:
          changeStyle(4)
          break;
      default:
          changeStyle(5)
          break;
  }
})
function changeStyle(num){
    for(let i=0; i<oLis.length; i++) {
      oLis[i].style.background = '#12ccfa'
      oLis[num].style.background = 'orange'
    }
}

异常处理语句

● throw 主动抛出异常
● try 指明需要处理的代码段
● catch 捕获异常
● finally 后期处理

相关文章

  • 2018-11-29

    17js流程控制switch 17js流程控制switch //js流程控制swi...

  • 2.原生js——流程控制语句

    流程控制语句在JS中是至关重要的。JS中的流程控制语句包括if条件判断语句、for循环语句、while循环语句、d...

  • web进阶之二十:JavaScript 语法之函数的流程控制

    流程控制   流程控制语句JS中的程序是从上到下一行一行执行的,通过流程控制语句可以控制程序执行流程,使程序可以根...

  • [JS基础]笔记四

    js流程控制语句 流程控制 顺序结构、分支结构、循环结构 分支结构 if 分支结构 if else 双分支结构语句...

  • 2019-07-22

    学习循环控制、流程控制。

  • js学习3-流程控制

    一、if 、if else if 二、三元表达式 三、switch 四、for循环 - 最常用 五、while循环...

  • JS流程控制

    3种基本的控制结构: 1.顺序 2. 选择 if语句: 3. 循环 if(条件){ 语句块 } else i...

  • JS流程控制

    对js的各个部分进行控制。 顺序流程即为自动进行,而通过if,swith等,可以进行选择控制。通过for whil...

  • JS流程控制if

    流程控制主要有三种结果,分别是顺序结构、分支结构和循环结构。 一、分支结构if if(条件表达式){} else ...

  • js流程控制

    2 - 流程控制 2.1 流程控制概念 2.2 顺序流程控制 ​ 顺序结构是程序中最简单、最基本的流程控制,它...

网友评论

      本文标题:丸子学JS(学习1小时 - 流程控制)

      本文链接:https://www.haomeiwen.com/subject/nwmpwdtx.html