JavaScript入门中-流程控制语句

在这里插入图片描述

本文转载自:https://fangcaicoding.cn/article/52

大家好!我是方才,目前是8人后端研发团队的负责人,拥有6年后端经验&3年团队管理经验,截止目前面试过近200位候选人,主导过单表上10亿、累计上100亿数据量级的业务系统的架构和核心编码。

“学编程,一定要系统化” 是我一直坚持的学习之道。目前正在系统化分享从零到一的全栈编程入门以及项目实战教程

无论你是编程新手,还是有经验的开发者,我都愿意与你分享我的学习方法、项目实战经验,甚至提供学习路线制定、简历优化、面试技巧等深度交流服务。

我创建了一个编程学习交流群(扫码关注后即可加入),秉持“一群人可以走得更远”的理念,期待与你一起 From Zero To Hero!

茫茫人海,遇见即是缘分!希望这篇文章对你有所帮助!

JavaScript入门-流程控制语句

流程控制语句是编程语言非常重要的内容,复杂功能的实现,本质就是单个简单功能、按不同条件或不同顺序进行组合而成。
编程是需要有流程的思维的。

image-20241021224007387

流程控制语句用于根据条件执行不同的代码块,或多次重复执行某个代码块。

条件语句

if语句

if根据条件表达式的结果,确定是否执行某个代码块。代码示例:

let age = 16;

if (age < 18) {
    console.log("年轻真好!");
} 
console.log("快乐就好!");

输出:

年轻真好!
快乐就好!

看流程图:

image-20241021223901352

if/else 语句

if/else 语句根据表达式的结果(truefalse)来决定执行哪个代码块。

let age = 20;

if (age < 18) {
    console.log("年轻真好!");
} else {
    console.log("长大了也挺幸福!");
}
 console.log("活着就好!");

输出:

长大了也挺幸福!
活着就好!

结合流程图理解:

image-20241021225019783

if-else-if 语句

当有多个条件时,可以使用 else if 来进行多级判断。

let score = 85;

if (score >= 90) {
    console.log("优秀");
}  else if (score >= 80) {
    console.log("良好");
}  else if (score >= 60) {
    console.log("及格");
}  else {
    console.log("不及格");
}

输出:

良好

流程示例:

image-20241021225853769

switch 语句

switch 语句用于针对多个可能的值执行不同的代码块。相比 if/else,它可以在多个可能的值之间进行选择。

let fruit = "香蕉";

switch (fruit) {
    case "苹果":
        console.log("你选择了苹果");
        break;
    case "香蕉":
        console.log("你选择了香蕉");
        break;
    default:
        console.log("未知的水果");
}

输出:

你选择了香蕉

流程图示例:

image-20241021230741057

注意:每个 case 语句的代码块,都建议加上break关键字,若没有break关键字,会执行匹配成功的代码块和之后的所有代码块。

let fruit = "苹果";

switch (fruit) {
    case "苹果":
        console.log("你选择了苹果");
    case "香蕉":
        console.log("你选择了香蕉");
    default:
        console.log("未知的水果");
}

输出:

你选择了苹果
你选择了香蕉
未知的水果

流程图就会变成这样:

image-20241021231541150

循环与迭代

for 循环

for 循环是一种常用的迭代方式,它允许你指定初始值、条件表达式和变量运算(一般是自增或自减)操作。语法规则:

for(初始变量;条件表达式;变量运算){  
// 循环体
}

示例:

for (let i = 0; i < 5; i++) {
    console.log("当前计数:" + i);
}for (let i = 0; i < 5; i = i+1) {
    console.log("当前计数:" + i);
}

输出:

当前计数:0
当前计数:1
当前计数:2
当前计数:3
当前计数:4

image-20241022225959691

whiledo...while 循环

流程上和 for循环是一样的,只是在语法上有所区别。

while 循环在条件为 true 时会不断执行循环体代码。

let count = 0;

while (count < 3) {
    console.log("循环次数:" + count);
    count++;
}

do...while 循环则会先执行一次代码块,然后再判断条件是否继续循环。

let count = 0;

do {
    console.log("循环次数:" + count);
    count++;
} while (count < 3);

for...infor...of 循环

  • for...in:遍历对象的属性。
  • for...of:遍历数组或可迭代对象的值。
let person = { name: "Alice", age: 25 };

for (let key in person) {
    console.log(key + ": " + person[key]); // 遍历对象属性
}

let numbers = [1, 2, 3];

for (let num of numbers) {
    console.log(num); // 遍历数组元素
}

breakcontinuereturn

在编写 JavaScript 程序时,控制代码的执行流程非常重要。breakcontinuereturn 是三个常见的关键字,它们用于改变循环或函数的默认行为。下面我们将详细解释这三个关键字的用法:

  • break 用于退出循环或 switch 语句**,立即终止循环执行。**
  • continue 用于跳过当前循环的剩余部分,继续下一次迭代
  • return 用于在函数中返回值,并终止函数的执行。

break 关键字:

break 关键字用于立即退出当前的循环或 switch 语句,不再继续执行剩下的循环或判断。通常在需要提前终止循环或跳出多重判断时使用。

  • 使用场景 1:跳出循环
for (let i = 0; i < 10; i++) {
  if (i === 5) {
    break;  // 当 i 等于 5 时,立即跳出循环
  }
  console.log(i);  // 输出 0, 1, 2, 3, 4
}

在上面的示例中,当 i 等于 5 时,break 会停止整个循环,不再执行后面的迭代。

  • 使用场景 2:用于 switch 语句

break 还用于 switch 语句中的每个 case,以防止执行落入下一个 case 中。

let day = 3;
switch (day) {
  case 1:
    console.log("Monday");
    break;
  case 2:
    console.log("Tuesday");
    break;
  case 3:
    console.log("Wednesday");
    break;  // 遇到 break 立即结束,避免执行后面的 case
  default:
    console.log("Invalid day");
}

continue 关键字

continue 关键字**用于跳过当前循环的剩余代码,立即进入下一次迭代。**与 break 不同的是,continue 不会退出循环,只是跳过本次循环中的后续代码。

  • 使用场景 :跳过某些迭代
for (let i = 0; i < 5; i++) {
  if (i === 2) {
    continue;  // 跳过 i 等于 2 的这一轮
  }
  console.log(i);  // 输出 0, 1, 3, 4
}

在上面的示例中,当 i 等于 2 时,continue 会跳过当前迭代,因此不会输出 2,而是直接进入下一次迭代。

return 关键字

return 关键字用于在函数中返回一个值,并立即停止函数的执行。return 是函数中结束函数执行的方式。

  • 使用场景 :返回值并结束函数
function sum(a, b) {
  return a + b;  // 返回两个参数相加的结果
}

let result = sum(3, 5);
console.log(result);  // 输出 8

在这个示例中,returna + b 的结果返回给调用该函数的地方,并停止执行函数。

  • 使用场景 2:提前结束函数
function checkAge(age) {
  if (age < 18) {
    return "Not allowed";  // 如果条件满足,函数立即返回并停止
  }
  return "Welcome";  // 如果条件不满足,执行这行
}

console.log(checkAge(16));  // 输出 "Not allowed"
console.log(checkAge(21));  // 输出 "Welcome"

return 也可以用于提前结束函数执行,如上例中如果 age 小于 18,函数会立即返回 “Not allowed”,不再执行后面的代码。


近期更新计划

近期更新计划(有需要的小伙伴,记得点赞关注哟!)

  1. 零基础前端入门系列,预计10月底更新完成;
  2. 博客系统功能完善,实现注册登录、评论系统等功能,预计11月开源;

“学编程,一定要系统化”——若你也是系统学习的践行者,记得点赞关注,期待与你一起 From Zero To Hero!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/898955.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

echart改变最后一个节点的图标

需求 在折线图的最后一个节点增加一个gif动图表示增长 一、静态图的使用 采用symbol属性进行设置&#xff0c;结果就是只能展示静态图 无法插入gif series: [{data: [150, 230, 224, 218, 135, 147, {value:200,symbol:image://https://ylxstatic.storage.ylingxin.com/va…

PostgreSQL数据库查看shared buffer配置

哈喽&#xff0c;大家好&#xff0c;我是木头左&#xff01; PostgreSQL是一个功能强大的开源关系型数据库管理系统&#xff0c;广泛应用于各种规模的应用程序。在PostgreSQL中&#xff0c;shared buffer是一个重要的性能调优参数&#xff0c;它直接影响到数据库查询的性能。本…

【信息论基础第六讲】离散无记忆信源等长编码包括典型序列和等长信源编码定理

一、信源编码的数学模型 我们知道信源的输出是消息序列&#xff0c;对于信源进行编码就是用码字集来表示消息集&#xff0c;也就是要进行从消息集到码字集的映射。 根据码字的特征我们又将其分为D元码&#xff0c;等长码&#xff0c;不等长码&#xff0c;唯一可译码。 我们通过…

使用Yolov10和Ollama增强OCR

1. 训练自定义 Yolov10 数据集 利用物体检测增强 OCR 的第一步是在数据集上训练自定义 YOLO 模型。YOLO&#xff08;只看一遍&#xff09;是一种功能强大的实时对象检测模型&#xff0c;它将图像划分为网格&#xff0c;使其能够在一次前向传递中识别多个对象。这种方法非常适合…

Redis遇到Hash冲突怎么办?

这是小伙伴之前遇到的一个面试题&#xff0c;感觉也是一个经典八股&#xff0c;和大伙分享下。 一 什么是 Hash 冲突 Hash 冲突&#xff0c;也称为 Hash 碰撞&#xff0c;是指不同的关键字通过 Hash 函数计算得到了相同的 Hash 地址。 Hash 冲突在 Hash 表中是不可避免的&am…

eNSP网络基本配置

1.配置设备名称 网络上一般不会配属一台设备&#xff0c;管理员需要对这些设备进行统一管理。在进行设备调试的时候&#xff0c;首要任务是配置设备名称&#xff0c;设备名称用来唯一标识一台设备。 例如通过以下操作将设备名称设置为testA &#xff1f; //可以查看用户视图…

AnaTraf | 提升网络性能:深入解析网络关键指标监控、TCP重传与TCP握手时间

AnaTraf 网络性能监控系统NPM | 全流量回溯分析 | 网络故障排除工具 在当今的数字化时代&#xff0c;网络的稳定性和性能对企业的运营效率至关重要。无论是内部通信、应用程序的运行&#xff0c;还是对外提供服务&#xff0c;网络都发挥着关键作用。对于网络工程师或IT运维人员…

雨情教务排课系统源码

PC端的雨情教务排课系统&#xff0c;是一款集功能性、实用性与便捷性于一体的教育管理工具。它全面支持班级设置功能&#xff0c;能够轻松管理不同年级、不同专业的班级信息&#xff0c;为后续的排课工作奠定坚实基础。在课程设置方面&#xff0c;系统允许管理者根据教学计划&a…

安装OpenResty

OpenResty OpenResty 是一个基于 Nginx的高性能 Web 平台&#xff0c;用于方便地搭建能够处理超高并发、扩展性极高的动态 Web 应用、Web 服务和动态网关。具备下列特点&#xff1a; 具备Nginx的完整功能 基于Lua语言进行扩展&#xff0c;集成了大量精良的 Lua 库、第三方模块…

Java最全面试题->Java基础面试题->JavaWeb面试题->Git/SVN面试题

文章目录 Git/SVN面试题Git和SVN有什么区别&#xff1f;SVN优缺点&#xff1f;Git优缺点&#xff1f;说一下Git创建分支的步骤&#xff1f;说一下Git合并的两种方法以及区别&#xff1f;Git如何查看文件的提交历史和分支的提交历史?什么是 git stash&#xff1f;什么是git sta…

uniapp修改input中placeholder样式

Uniapp官方提供了两种修改的属性方法&#xff0c;但经过测试&#xff0c;只有 placeholder-class 属性能够生效 <input placeholder"请输入手机验证码" placeholder-class"input-placeholder"/><!-- css --> <style lang"scss" s…

KBPC1010-ASEMI新能源专用方桥KBPC1010

编辑&#xff1a;ll KBPC1010-ASEMI新能源专用方桥KBPC1010 型号&#xff1a;KBPC1010 品牌&#xff1a;ASEMI 封装&#xff1a;KBPC-4 安装方式&#xff1a;直插 批号&#xff1a;2024 现货&#xff1a;50000 正向电流&#xff08;Id&#xff09;&#xff1a;10A 反向…

芯海休眠唤醒

这个电路要钱&#xff0c;降本需要去掉这个电路&#xff0c;让软件完全实现开关机的功能。 1、当按键按下的时候&#xff0c;K1下面接地&#xff0c;R12下面为低电平&#xff0c;同时BAT在左边供电&#xff0c;为高电平&#xff0c;Q2MOS管导通&#xff0c;给板子供电。 2、当…

【and design ProTable组件rowClassName属性进行判断修改行样式】

代码解析 注&#xff1a;行改变基于css效果 【导入css文件】 效果展示 代码块 自己导入cssrowClassName{(record)>{return record.jibie"高"?"row-style":""}}

Linux_进程终止_进程等待_进程替换

进程终止 不知道大家想过没有&#xff0c;我们写的main()函数的返回值是返回给谁的呢&#xff1f;其实是返回给父进程或者系统的。 int main() {std::cout << "hello" << std::endl;return 10; }运行该代码&#xff0c;输入hello&#xff0c;没问题&am…

I\O进程线程(Day32)

一、学习内容 进程之间的通信(nterprocess communication) 信号通信 概念 1> 信号通信中&#xff0c;多个进程只起到通知作用&#xff0c;没有数据传输的功能 2> 所谓信号通信&#xff0c;就是软件模拟的硬件的中断请求 3>原理图 信号处理方式 默认&#xff08;SIG_DF…

SpringBoot1~~~

目录 快速入门 依赖管理和自动配置 修改自动仲裁/默认版本号 starter场景启动器 自动配置 修改默认扫描包结构 修改默认配置 读取application.properties文件 按需加载原则 容器功能 Configuration Import ​编辑 Conditional ImportResource 配置绑定Configur…

华为云购买弹性云服务器(教程)

配置弹性云服务器 基础配置 实例 操作系统

『完整代码』坐骑召唤

创建一个按钮 作为召唤/消失坐骑的开关 将预制体放入指定文件夹 命名为Mount01 创建脚本并编写&#xff1a;CallMount.cs using UnityEngine; using UnityEngine.UI; public class CallMount : MonoBehaviour{public Button callBtn;GameObject mountPrefab;GameObject mountIn…

信息搜集 --子域名

1.证书查询 通过ssl证书指纹在crt.sh |证书搜索网站搜索 这些就是证书一样的 2.fofa等空间测绘平台查询 3.dns查询 https://dnsdumpster.com/ 4.威胁情报中心 360 微步等等 5.枚举 暴力破解 工具推荐&#xff1a;oneforall GitHub - shmilylty/OneForAll: OneForAll是一款…