首页 > 其他分享 >Js流程控制

Js流程控制

时间:2024-09-30 14:33:48浏览次数:8  
标签:控制 console log 流程 Js 循环 执行 代码 表达式

代码块

使用{}创建代码块,代码块可以对代码进行分组

{
    let a = 10
    console.log("代码块1",a) // 10
    
}

{
    let a = 20
    console.log("代码块2",a) // 20
}

{
  var b = 30
}
{
     console.log("代码块3",b)  // 30
}

let声明的变量具有块作用域,在代码块中声明的变量无法在代码块外部访问

var声明的变量不具有块作用域,可以在代码块外部访问

if语法

// if语句,如果if后面的表达式不是布尔值,会转换为布尔值再运算

if ("条件表达式"){
  console.log("代码块")
}
// if-else分支语句
if ("条件表达式1"){
    console.log("代码块1")
}else if("条件表达式1"){
   console.log("代码块2")
}else{
     console.log("代码块3")
}

执行流程(短路):

  • 自上向下依次对表达式进行求值判断,如果执行到结果为true,则执行对应代码块,后面的分支都不会执行,如果全部是false,执行else代码块

prompt()函数

用来获取用户输入的内容

let content = prompt("请输入内容:") //前端类型alert形式的弹窗输入框,默认类型是string

isNaN函数()

检查一个Number是不是NaN

let content = +prompt("请输入数字:")
// 代码块不会执行,因为NaN不和任何任何相等
if (content === NaN){
  console.log() 
}
// 检测content是不是NaN
if (isNaN(content)){
    console.log() 
}

switch语法

switch ("表达式"){
    case "表达式":
        console.log(1)
        break
    case "表达式1":
        console.log(2)
        break
    case "表达式2":
        console.log(3)
        break
}

switch语句在执行时,会依次将switch后的表达式和case后的表达式进行全等比较,如果比较结果为true,则自当前case处开始执行代码,如果比较结果为false,则继续比较其他case后的表达式,直到找到true为止,如果所有的比较都是false,则执行default后的语句

当比较结果为true时,会从当前case处开始执行代码,也就是说case是代码执行的起始位置,如果不写break,执行后续所有代码,不论case表达式是否相等,使用break,当前case执行完后不会继续向执行

循环语法

while循环
while ("循环表达式"){
    console.log("while")
}

语句在执行时,会先对条件表达式进行判断,如果结果为true,则执行循环体,执行完毕,继续判断,如果为true,则再次执行循环体,执行完毕,继续判断,直到条件表达式结果为false时,循环结束

do-while循环
do{
  console.log("do-while代码块")
}while("循环表达式")

do-while语句在执行时,会先执行do后的循环体,执行完毕后,会对while后的条件表达式进行判断,如果为false,则循环终止,如果为true,则继续执行循环体,以此类推

while语句是先判断再执行,do-while语句是先执行再判断(循环至少执行一次)

for循环
for("初始化表达表达式";"条件表达式";"更新表达式"){
  console.log("for循环代码块") 
}
for (let m = 0; m < 5; m++) {
    console.log(m)
}

// for循环语法中的表达式都可以进行省略,为空即可
let s = 0
for (;s<5;){
  s++
}
// 死循环
for (;;){
  console.log("死循环")
}

执行流程:

  1. 执行初始化表达式,初始化变量
  2. 执行条件表达式,判断循环是否执行(true执行,false终止)
  3. 判断结果为true,则执行循环体
  4. 执行更新表达式,对初始化变量进行修改
  5. 重复第二步,直到判断为false为止

break和continue
break

break用来终止switch和循环语句

let a = 10
for (; a < 20; a++) {
    if (a===15){
        break // a的值是15的时候,终止循环
    }
    console.log(a) // 10~14

}
continue

continue用来跳过当次循环,执行下一次循环

let a = 10
for (; a < 20; a++) {
    if (a%2 === 0){
        // a是偶数的时候,跳出本次循环,继续下一次循环
       continue
    }
    console.log(a) // 11、13、15、17、19

}

console.time() / console.timeEnd()

console.time()和console.timeEnd()是用于测量代码执行时间的方法

console.time("标识a") // 开始计时
// 代码块
console.timeEnd("标识a") // 结束计时

// 标识输入如果为空,则默认为default,如果自定义标识名,timeEnd标识要与time的标识一致,用于区分多对不同的计时

标签:控制,console,log,流程,Js,循环,执行,代码,表达式
From: https://www.cnblogs.com/Mickey-7/p/18441795

相关文章

  • 【Echarts地图开发全流程加全套代码】
    前言本篇分享近期做的项目echarts相关地图开发的相关细节和避坑细节!!一、地图Json文件echarts地图采用官网的type类型map进行配置开发ApacheEChartsApacheECharts,一款基于JavaScript的数据可视化图表库,提供直观,生动,可交互,可个性化定制的数据可视化图表。https://echarts.a......
  • 基于nodejs+vue学生管理平台[开题+源码+程序+论文]计算机毕业设计
    本系统(程序+源码+数据库+调试部署+开发环境)带文档lw万字以上,文末可获取源码系统程序文件列表开题报告内容研究背景随着信息技术的飞速发展,教育领域正经历着深刻的变革。传统的学生管理方式逐渐暴露出效率低下、信息孤岛等问题,难以满足现代教育的需求。在这个背景下,开发一......
  • 基于nodejs+vue学生活动申报管理系统[开题+源码+程序+论文]计算机毕业设计
    本系统(程序+源码+数据库+调试部署+开发环境)带文档lw万字以上,文末可获取源码系统程序文件列表开题报告内容研究背景在当今信息化高速发展的时代,高校作为人才培养和知识创新的重要基地,其学生活动的组织与管理显得尤为重要。传统的学生活动申报流程繁琐、效率低下,且容易因信......
  • 基于nodejs+vue学生健康管理系统[开题+源码+程序+论文]计算机毕业设计
    本系统(程序+源码+数据库+调试部署+开发环境)带文档lw万字以上,文末可获取源码系统程序文件列表开题报告内容研究背景在当今社会,随着教育竞争的加剧和生活节奏的加快,学生的身心健康问题日益凸显,成为社会关注的焦点。传统的学生健康管理方式大多依赖于纸质记录和人工统计,不仅......
  • 基于nodejs+vue学生健康信息填报网站[开题+源码+程序+论文]计算机毕业设计
    本系统(程序+源码+数据库+调试部署+开发环境)带文档lw万字以上,文末可获取源码系统程序文件列表开题报告内容研究背景在信息化高速发展的今天,教育领域也逐渐向数字化、智能化转型。学生的健康信息作为学校日常管理的重要组成部分,其准确性和时效性对于学校的健康管理工作至关......
  • 微服务JMeter解析部署使用全流程
    目录1、介绍2、下载3、运行4、设置简体中文版5、开始测试1、添加线程组2、添加监听器3、添加请求先.测试userController里的查询方法6、查看结果1、查看结果树2、汇总报告3、聚合报告7、JMeter报错1、介绍ApacheJMeter是Apache组织基于Java开发的压力......
  • Js运算符(操作符)
    算数运算符a=1+1//2a=10-5//5a=10/5//2a=10/0//js中除以0不会报错,结果是Infinitya=2*2//4a=2**2//a=10%4//取余,2js中算数运算,除了字符串的加法,会自动将非数值转换为int进行计算,不像其他语言会报错a=10+true//11a=10......
  • nodejs koa 用knex.js链接mysql数据库,进行数据增删改查
    1、knex.js安装npminstallknex官方Installation|Knex.js中文文档|Knex.js中文网2、进行数据库链接constknex=require('knex')({client:'mysql2',connection:{host:'127.0.0.1',//地址user:'root',//账号......
  • jsp“小饰界”线上饰品商城的设计与实现u39l6(程序+源码+数据库+调试部署+开发环境)
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表用户,商品分类,商品信息,活动商品,知识普及开题报告内容一、项目背景与意义随着互联网技术的飞速发展,电子商务已成为现代商业的重要组成部分。饰品作为时尚消......
  • jsp“海洋生态环境保护宣传”网站设计与实现f87t4--程序+源码+数据库+调试部署+开发环
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表用户,海洋知识,知识分类,视频专区,活动报名,报名信息,截止报名技术要求:开发语言:JSP前端使用:HTML5,CSS,JSP动态网页技术后端使用SpringBoot,Spring技术主数据......