JavaScript 从基础到进阶 02:控制流程与函数

控制流程与函数

    • 条件语句
      • 1. if语句
      • 2. else if语句
      • 3. switch语句
    • 循环语句
      • 1. for循环
      • 2. while循环
      • 3. do...while循环
    • 控制流程的关键概念
      • 1. break语句
      • 2. continue语句
      • 3. 标签(label)
    • 总结
    • 函数的定义
      • 1. 函数声明
      • 2. 函数表达式
    • 函数的调用
    • 函数的参数
      • 形参和实参
      • 默认参数
    • 函数的返回值
    • 函数的作用域
      • 全局作用域
      • 函数作用域
      • 闭包
    • 常见用例
    • 总结

当学习JavaScript时,了解控制流程是非常重要的,因为它们允许您控制程序的执行顺序和逻辑。在本博客文章中,我们将深入研究JavaScript中的控制流程,包括条件语句(if、else、switch)、循环语句(for、while、do…while)和其他控制流程的关键概念。

条件语句

条件语句用于根据条件的真假来决定不同的代码路径。以下是一些常见的条件语句:

1. if语句

if 语句用于在满足条件时执行一段代码块。

let age = 18;
if (age >= 18) {console.log("成年人");
} else {console.log("未成年人");
}

2. else if语句

else if 语句用于在多个条件之间进行选择。

let num = 5;
if (num > 0) {console.log("正数");
} else if (num < 0) {console.log("负数");
} else {console.log("零");
}

3. switch语句

switch 语句用于根据不同的条件值执行不同的代码块。

let day = "Monday";
switch (day) {case "Monday":console.log("星期一");break;case "Tuesday":console.log("星期二");break;default:console.log("其他天");
}

循环语句

循环语句允许您多次执行相同的代码块,直到满足特定条件。

1. for循环

for 循环用于按照指定的条件重复执行代码块。

for (let i = 0; i < 5; i++) {console.log("循环次数:" + i);
}

2. while循环

while 循环在满足条件时执行代码块。

let count = 0;
while (count < 3) {console.log("计数:" + count);count++;
}

3. do…while循环

do...while 循环首先执行代码块,然后检查条件是否满足,如果满足,则继续执行。

let num = 1;
do {console.log("数字:" + num);num++;
} while (num <= 3);

控制流程的关键概念

控制流程的学习还涉及一些关键概念,如循环中断(break)循环继续(continue)、**标签(label)**等。

1. break语句

break 语句用于在循环中提前退出循环,或者在 switch 语句中终止执行。

for (let i = 0; i < 5; i++) {if (i === 3) {break; // 提前退出循环}console.log("循环次数:" + i);
}

2. continue语句

continue 语句用于跳过当前循环迭代,继续执行下一次迭代。

for (let i = 0; i < 5; i++) {if (i === 3) {continue; // 跳过第3次迭代}console.log("循环次数:" + i);
}

3. 标签(label)

标签允许您在嵌套循环中标识特定循环,并使用 breakcontinue 来控制外部和内部循环。

outerLoop: for (let i = 0; i < 3; i++) {innerLoop: for (let j = 0; j < 3; j++) {if (i === 1 && j === 1) {break outerLoop; // 退出外部循环}console.log(i, j);}
}

总结

本博客文章涵盖了JavaScript中的控制流程,包括条件语句(if、else、switch)、循环语句(for、while、do…while)以及与控制流程相关的关键概念(break、continue、标签)。掌握这些知识将使您能够编写更具逻辑和灵活性的JavaScript代码,以满足各种不同的编程需求。通过实际练习和项目,您可以深入了解这些概念,并将其应用到实际开发中。

当学习JavaScript时,理解函数是非常重要的,因为函数是JavaScript编程的核心。函数允许您封装可重用的代码块,并以一种有组织的方式组织您的程序。在本博客文章中,我们将深入探讨JavaScript中的函数,包括函数的定义、参数、返回值、作用域和常见用例。

函数的定义

JavaScript中的函数可以通过多种方式定义,以下是其中两种常见的方式:

1. 函数声明

函数声明是定义函数的标准方式,它使用 function 关键字,后跟函数名、参数列表和函数体。

function greet(name) {return "Hello, " + name + "!";
}

2. 函数表达式

函数表达式是将函数赋值给变量的方式,它通常用于创建匿名函数或将函数作为参数传递给其他函数。

const greet = function(name) {return "Hello, " + name + "!";
};

函数的调用

要使用函数,您需要调用它,这意味着执行函数体中的代码。函数调用使用函数名后跟一对圆括号,圆括号内包含传递给函数的参数。

const message = greet("Alice");
console.log(message); // 输出 "Hello, Alice!"

函数的参数

函数可以接受参数,这些参数是函数在调用时接收的值。参数允许您将数据传递给函数以进行处理。

形参和实参

  • 形参(形式参数):函数定义中声明的参数,用于接收传递给函数的值。
  • 实参(实际参数):函数调用时传递给函数的值,用于赋给函数中的形参。
function add(a, b) { // a和b是形参return a + b;
}const result = add(2, 3); // 2和3是实参
console.log(result); // 输出 5

默认参数

您可以为函数的参数设置默认值,如果调用时未传递参数,则使用默认值。

function greet(name = "Guest") {return "Hello, " + name + "!";
}console.log(greet()); // 输出 "Hello, Guest!"
console.log(greet("Alice")); // 输出 "Hello, Alice!"

函数的返回值

函数可以返回一个值,该值可以用于进一步的计算或操作。

function multiply(a, b) {return a * b;
}const result = multiply(4, 5);
console.log(result); // 输出 20

如果函数没有明确的返回语句,则它将返回 undefined

function noReturn() {// 没有返回语句
}const value = noReturn();
console.log(value); // 输出 undefined

函数的作用域

JavaScript中的作用域规定了变量的可见性和生命周期。了解作用域是理解函数行为的关键。

全局作用域

在全局作用域中声明的变量可以在整个程序中访问。

const globalVar = "I am global";function sayGlobalVar() {console.log(globalVar); // 可以访问全局变量
}sayGlobalVar();

函数作用域

在函数内部声明的变量具有函数作用域,只能在函数内部访问。

function sayLocalVar() {const localVar = "I am local";console.log(localVar); // 可以访问局部变量
}sayLocalVar();
console.log(localVar); // 报错,无法访问局部变量

闭包

闭包是指函数可以访问其外部作用域中的变量,即使外部函数已经执行完毕。

function outer() {const outerVar = "I am outer";function inner() {console.log(outerVar); // 闭包:可以访问外部函数的变量}return inner;
}const innerFunc = outer();
innerFunc(); // 输出 "I am outer"

常见用例

函数在JavaScript中具有广泛的用例,包括但不限于:

  • 封装和模块化: 函数可以将代码封装在一个可重用的单元中,有助于保持代码的结构性和可维护性。
  • 事件处理: 函数可以用于处理各种事件,例如按钮点击、键盘输入等。
  • 异步操作: 函数可以用于执行异步任务,例如Ajax请求、定时器等。
  • 迭代和遍历: 函数可以用于迭代数组、对象或其他数据结构的元素。
  • 递归: 函数可以递归地调用自身来解决复杂的问题。

总结

本博客文章深入探讨了JavaScript中的函数,包括函数的定义、调用、参数、返回值、作用域和常见用例。函数是JavaScript编程中不可或缺的组成部分,它们可以使您的代码更加模块化、可维护,并且可以实现各种不同的功能。通过学习函数的基本概念和实际应用,您将能够更有效地编写JavaScript代码。在日常编程中,不断练习和掌握函数的使用是提高编程技能的重要一步。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Goby 漏洞发布| Apusic 应用服务器 createDataSource 远程代码执行漏洞

漏洞名称&#xff1a;Apusic 应用服务器 createDataSource 远程代码执行漏洞 English Name&#xff1a;Apusic Application Server loadTree Remote Code Execution Vulnerability CVSS core: 9.8 影响资产数&#xff1a; 31410 漏洞描述&#xff1a; 金蝶 Apusic 应用服务…

死锁的原理、产生条件及避免死锁的方法,银行家算法的简介和实现

死锁的原理及避免死锁的方法 死锁的原理 死锁是指在多个进程或线程之间&#xff0c;由于彼此互相持有对方所需资源而无法继续执行的情况。死锁发生的原因通常是由于多个进程同时请求资源&#xff0c;但由于资源分配不当或者竞争条件等问题&#xff0c;导致彼此之间陷入僵局无…

第三节TypeScript 基础类型

1、typescript的基础类型 如下表&#xff1a; 数据类型 关键字 描述 任意类型 any 生命any的变量可以赋值任意类型的值 数字类型 number 整数或分数 字符串类型 string 使用单引号&#xff08;‘’&#xff09;或者双引号&#xff08;“”&#xff09;来表示字符串…

企业数字化转型如何影响企业 ESG 表现 —来自中国上市公司的证据(数据复现+代码)

数据来源&#xff1a;自主整理 时间跨度&#xff1a;2010-2020年 数据范围&#xff1a;中国沪深 A 股上市公司 数据指标&#xff1a; 类型 变量 符号 变量定义 证券代码 stkcd 年份 year 股票简称 name 被解释变量 ESG ESG 华证ESG季度评级赋值1-9分&#xff0c;取…

xxl-job 分布式调度学习笔记

1.概述 1.1什么是任务调度 业务场景&#xff1a; 上午10点&#xff0c;下午2点发放一批优惠券 银行系统需要在信用卡到期还款日的前三天进行短信提醒 财务系统需要在每天凌晨0:10分结算前一天的财务数据&#xff0c;统计汇总 不同系统间的数据需要保持一致&#xff0c;这时…

flask 之上传与下载

from flask import Flask, render_template, request, send_from_directory, redirect, url_for import osapp Flask(__name__)# 上传文件存储路径 UPLOAD_FOLDER uploads app.config[UPLOAD_FOLDER] UPLOAD_FOLDERapp.route(/) def index():# 确保上传文件夹存在if not os.…

【工业智能】音频信号相关场景

【工业智能】音频信号相关场景 DcaseDcase introduction&#xff1a;dcase2024有10个主题的任务&#xff1a; ASD硬件设备产品商 方法制造业应用场景 zenodo音频事件检测 与计算机视觉CV相对应&#xff0c;计算机听觉computer audition&#xff0c;简称CA。 Dcase 这里推荐一个…

牛客BC115 超级圣诞树

万众瞩目 在上一篇我们介绍了一个圣诞树的打印&#xff0c;而这道题与上次不同的是他的基本单位是一直在变的 我建议先把上一个搞懂在写这道题这个。 牛客网BC114 圣诞树-CSDN博客 ok那么正文开始 题目如下 今天是圣诞节&#xff0c;牛牛要打印一个漂亮的圣诞树送给想象中…

Unity 通过代码将一张大图切成多个小图的方法

在Unity 中要通过代码将一张贴图切割成多张小图&#xff0c;可以使用以下方法&#xff1a; /// <summary>/// 把一张图片切割成多张使用/// </summary>/// <param name"texture">原图</param>/// <param name"rows">切割的行…

[DNS网络] 网页无法打开、显示不全、加载卡顿缓慢 | 解决方案

[网络故障] 网页无法打开、显示不全、加载卡顿缓慢 | 解决方案 问题描述 最近&#xff0c;我在使用CSDN插件浏览 MOOC 网站时&#xff0c;遇到了一些网络故障。具体表现为&#xff1a; MOOC 中国大学慕课网&#xff1a;www.icourse163.org点击CSDN插件首页的 MOOC&#xff08…

VSCode调试Vue项目

前言 代码在某个平台运行时&#xff0c;会将运行时的状态通过某种方式暴露出来。这些状态信息可以通过某种方式传递给开发工具&#xff0c;以便进行UI的展示和交互。这样的交互可以辅助开发者排查问题、梳理流程&#xff0c;并更好地了解代码的运行状态。这就是我们通常所说的调…

Excel如何将行的值转换为列值?

问题:Excel如何将行的值转换为列值?(如图左表变成右表) 1.用 SUMIFS(求和区域, 条件区域1, 条件1, [条件区域2, 条件2], ...)函数 比如:=SUMIFS($C$2:$C$8,$A$2:$A$8,H3,$B$2:$B$8,"快车") 2.直接用简单的透视表 (1)随机点击目标目标表格任何位置,点击插入…

C语言—每日选择题—Day56

指针相关博客 打响指针的第一枪&#xff1a;指针家族-CSDN博客 深入理解&#xff1a;指针变量的解引用 与 加法运算-CSDN博客 第一题 1. 以下叙述中正确的是&#xff08;&#xff09; A&#xff1a;\0 表示字符 0 B&#xff1a;"a" 表示一个字符常量 C&#xff1a;表…

(企业 / 公司项目)Java如何打印漂亮的日志?

启动类 首先在idea创建一个项目这里就不演示了&#xff0c;直接看demo 找到项目的启动类&#xff0c;首先把启动类日志打印基本信息&#xff0c;这样就不用找来找去找不到地址以及端口 主要作用就是启动一个Spring Boot应用程序&#xff0c;并获取程序的运行环境。首先创建一…

javaSE学习-4-类和对象

1. 面向对象的初步认知 1.1 什么是面向对象 面向对象编程&#xff08;OOP&#xff09;是一种程序设计范式&#xff0c;它将程序中的数据和操作数据的方法封装到对象中。在面向对象的世界里&#xff0c;一切都被视为对象&#xff0c;这些对象可以拥有数据&#xff08;成员变量&…

专家表示提高学生阅读素养离不开家校协同

12月初&#xff0c;《北京市中小学生阅读能力分级标准指南&#xff08;试行&#xff09;》&#xff08;以下简称《标准指南》&#xff09;正式发布。据悉&#xff0c;《标准指南》由北京教育科学研究院研制&#xff0c;旨在进一步明确各学年段学生阅读素养发展目标&#xff0c;…

5. 赋值操作符

5. 赋值操作符 并不是程序清单12.3的所有问题都可以归咎于默认的复制构造函数,还需要看一看默认的赋值操作符。 ANSI C 允许结构赋值,而C允许类对象赋值,这是通过自动为类重载赋值操作符实现的。这种操作符 的原型如下: Class name & Class_name :: operator (const Class_…

大数据机器学习:从理论到实战,探索学习率的调整策略

大数据机器学习&#xff1a;从理论到实战&#xff0c;探索学习率的调整策略 全文目录 大数据机器学习&#xff1a;从理论到实战&#xff0c;探索学习率的调整策略一、引言二、学习率基础定义与解释学习率与梯度下降学习率对模型性能的影响 三、学习率调整策略常量学习率时间衰减…

《PySpark大数据分析实战》-16.云服务模式Databricks介绍运行案例

&#x1f4cb; 博主简介 &#x1f496; 作者简介&#xff1a;大家好&#xff0c;我是wux_labs。&#x1f61c; 热衷于各种主流技术&#xff0c;热爱数据科学、机器学习、云计算、人工智能。 通过了TiDB数据库专员&#xff08;PCTA&#xff09;、TiDB数据库专家&#xff08;PCTP…

【大数据面试】Flink面试题附答案

目录 ✅Flink介绍、特点、应用场景 ✅Flink与Spark Streaming的区别 ✅Flink有哪些部署模式 ✅Flink架构 ✅怎么设置并行度&#xff1f; ✅什么是算子链&#xff1f; ✅什么是任务槽&#xff08;Task Slots&#xff09;&#xff1f; ✅任务槽和并行度的关系 ✅Flink作…