JavaScript(六)

news2024/5/20 2:15:45

JavaScript条件语句

在JavaScript中,条件语句用于基于某个条件执行不同的代码块。最常用的条件语句是if语句,但它也有其他变体,如if...elseif...else if...elseswitch等。

1. if 语句

if语句用于在条件为真时执行代码块。

var s = 70;  
if (s >= 60) {  
    console.log("通过考试");  
}

2. if...else 语句

if...else语句用于在条件为真时执行一段代码,否则执行另一段代码。

var s = 55;  
if (s >= 60) {  
    console.log("通过考试");  
} else {  
    console.log("未通过考试");  
}

3. if...else if...else 语句

if...else if...else语句用于检查多个条件,并根据第一个为真的条件执行相应的代码块。

var s = 75;  
if (s >= 90) {  
    console.log("优秀");  
} else if (s >= 60) {  
    console.log("通过考试");  
} else {  
    console.log("未通过考试");  
}

4. switch 语句

switch语句用于基于不同的案例值执行不同的代码块。虽然switch主要用于比较字符串或数值常量,但它也可以与更复杂的表达式一起使用。

var grade = "B";  
switch (grade) {  
    case "A":  
        console.log("优秀");  
        break;  
    case "B":  
        console.log("良好");  
        break;  
    case "C":  
        console.log("中等");  
        break;  
    case "D":  
        console.log("及格");  
        break;  
    default:  
        console.log("成绩无效");  
}

switch语句中,break关键字用于防止代码自动执行到下一个case。如果不使用break,则会出现“穿透”(fall-through)行为,即执行完一个case的代码后,会继续执行下一个case的代码,直到遇到breakswitch语句的末尾。

注意:在使用switch语句时,通常建议为所有case都添加break,以避免意外的穿透行为。但是,在某些情况下,你可能想要利用穿透行为来执行多个case的代码块。在这种情况下,你可以省略某些case后面的break

JavaScript函数

函数的基本结构

在JavaScript中,函数是一段可重用的代码块,它执行特定的任务。函数的基本结构包括function关键字、函数名、参数列表(可选)和函数体。以下是JavaScript函数的基本结构:

function functionName(parameter1, parameter2, ...) {  
    // 这里是函数体,即函数要执行的代码  
    // 可以使用参数(如果有的话)  
    // ...  
    // 函数体结束  
    return returnValue; // 可选,用于返回函数执行的结果  
}

 

  • function:这是声明函数的关键字。
  • functionName:这是你给函数起的名字,也就是函数标识符。你可以使用这个名字来调用函数。
  • parameter1, parameter2, ...:这些是函数的参数,它们是可选的。在函数被调用时,这些参数会接收传入的值。在函数体内,你可以使用这些参数。
  • functionBody:这是函数体,包含了函数要执行的代码。你可以在这里定义变量、调用其他函数、执行计算等。
  • return returnValue;:这也是可选的。return语句用于从函数中返回一个值。returnValue是你要返回的值。如果函数没有return语句或return语句没有返回值,那么函数将返回undefined

下面是一个简单的示例,这个函数接受两个参数并返回它们的和:

function addNumbers(num1, num2) {  
    var sum = num1 + num2;  
    return sum;  
}  
  
// 调用函数并打印结果  
console.log(addNumbers(5, 3)); // 输出:8

 函数的调用

在JavaScript中,定义函数之后,你需要通过函数名来调用它。调用函数时,你需要使用圆括号(),并在其中传递任何必要的参数(如果函数需要的话)。函数被调用时,它的代码块会执行,并且可以返回一个值(如果函数有return语句的话)。

下面是一些函数调用的例子:

不带参数的函数调用

function sayHello() {  
    console.log("Hello, world!");  
}  
  
// 调用函数  
sayHello(); // 输出:Hello, world!

带参数的函数调用

function greet(name) {  
    console.log("Hello, " + name + "!");  
}  
  
// 调用函数并传递参数  
greet("Alice"); // 输出:Hello, Alice!  
greet("Bob");   // 输出:Hello, Bob!

调用带有返回值的函数

function add(a, b) {  
    return a + b;  
}  
  
// 调用函数并接收返回值  
var result = add(5, 3);  
console.log(result); // 输出:8

链式调用(如果函数返回对象)

在一些情况下,函数会返回一个对象,你可以在这个返回的对象上立即调用另一个方法,这称为链式调用。

function createPerson(name) {  
    return {  
        name: name,  
        greet: function() {  
            console.log("Hello, my name is " + this.name);  
        }  
    };  
}  
  
// 链式调用  
createPerson("Charlie").greet(); // 输出:Hello, my name is Charlie

函数作为参数(高阶函数)

在JavaScript中,函数也可以作为参数传递给其他函数。

function callFunction(fn, arg) {  
    fn(arg);  
}  
  
function printNumber(num) {  
    console.log(num);  
}  
  
// 调用callFunction,并将printNumber作为参数传递  
callFunction(printNumber, 42); // 输出:42

立即执行的函数表达式(IIFE)

你也可以定义并立即调用一个函数,这通常用于创建局部作用域和避免全局变量污染。

(function() {  
    var localVariable = "I'm local!";  
    console.log(localVariable); // 输出:I'm local!  
})();  
  
// 尝试访问localVariable将会失败,因为它在函数作用域内  
// console.log(localVariable); // ReferenceError: localVariable is not defined

构造函数调用(使用new关键字)

当函数用作构造函数并创建新对象时,可以使用new关键字。

function Person(name, age) {  
    this.name = name;  
    this.age = age;  
}  
  
// 使用new关键字调用构造函数  
var john = new Person("John", 30);  
console.log(john.name); // 输出:John  
console.log(john.age);  // 输出:30

函数的返回值

在JavaScript中,函数可以返回一个值给调用它的代码。这个返回值是由函数体中的return语句指定的。如果函数没有return语句,或者return语句后面没有跟任何值,那么函数将返回undefined

下面是一些关于函数返回值的例子:

简单的返回值

function add(a, b) {  
    return a + b;  
}  
  
var sum = add(5, 3); // sum 现在是 8  
console.log(sum); // 输出:8

没有返回值的函数

function sayHello() {  
    console.log("Hello, world!");  
}  
  
var result = sayHello(); // sayHello 被调用,但没有返回值,所以 result 是 undefined  
console.log(result); // 输出:undefined

返回多个值(通过对象或数组)

虽然JavaScript函数不能直接返回多个值,但你可以通过返回一个对象或数组来模拟这个行为。

function getPersonInfo() {  
    return {  
        name: "Alice",  
        age: 30,  
        city: "New York"  
    };  
}  
  
var info = getPersonInfo(); // info 是一个对象,包含了多个“返回值”  
console.log(info.name); // 输出:Alice  
console.log(info.age);  // 输出:30  
console.log(info.city); // 输出:New York

函数提前返回

return语句不仅可以用于返回值,还可以用于提前退出函数。这在某些条件下非常有用,比如当你想在函数执行完所有逻辑之前停止它时。

function checkAge(age) {  
    if (age < 18) {  
        return "You are too young.";  
    }  
    // 只有在 age 大于等于 18 时才会执行以下代码  
    return "You are old enough.";  
}  
  
var message = checkAge(15); // message 现在是 "You are too young."  
console.log(message); // 输出:You are too young.

返回值与异步操作

需要注意的是,对于异步操作(如AJAX请求、setTimeout等),函数可能不会立即返回最终的结果。在这些情况下,你通常会使用回调函数、Promises或async/await来处理异步返回值。

// 使用 Promise 的例子  
function fetchData() {  
    return new Promise((resolve, reject) => {  
        // 模拟异步操作,如AJAX请求  
        setTimeout(() => {  
            resolve("Data fetched successfully!");  
        }, 1000);  
    });  
}  
  
fetchData().then(data => {  
    console.log(data); // 输出:Data fetched successfully!(在1秒后)  
});

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

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

相关文章

Linux进程地址空间第三讲

至今为止&#xff0c; 我们所学到的大多数的知识&#xff0c; 包括语言&#xff0c; 数据结构&#xff0c; 动静态库等等的 都是在下面这3G&#xff0c; 也就是用户空间里的(进程等待&#xff0c; 信号之类的与内核有关的是在上面那1G里的) 所以对于我们来说&#xff0c; 我们…

避雷!5.3分,新增1区被标记On Hold,共12本SCI/SSCI慎投!

本周投稿推荐 SSCI • 2/4区经管类&#xff0c;2.5-3.0&#xff08;录用率99%&#xff09; SCIE&#xff08;CCF推荐&#xff09; • 计算机类&#xff0c;2.0-3.0&#xff08;最快18天录用&#xff09; SCIE&#xff08;CCF-C类&#xff09; • IEEE旗下&#xff0c;1/2…

贪吃蛇游戏(C语言实现)

目录 游戏效果展示文件代码的展示test.cSnake.cSnake.h 下一个坐标不是食物 游戏效果展示 QQ录屏20240507163633 文件 代码的展示 test.c #define _CRT_SECURE_NO_WARNINGS#include<locale.h> //设置本地化 #include"Snake.h"//游戏的测试逻辑 void test() {…

免单狂欢模式:电商销售的新风潮

免单狂欢模式&#xff0c;是电商行业里一股新兴的销售力量。它以其独特的激励机制、社交属性与合规运营&#xff0c;迅速吸引了众多消费者的目光&#xff0c;成为推动销售业绩飙升的强大动力。 一、合规运营&#xff0c;稳健发展 在免单狂欢模式中&#xff0c;我们严格遵守法律…

搭建Harbor仓库

文章目录 Harbor仓库搭建Harbor仓库安装 docker 服务修改配置文件 Harbor仓库 搭建Harbor仓库 下载 Harbor 仓库 安装 docker 服务 # step 1: 安装必要的一些系统工具 yum install -y yum-utils device-mapper-persistent-data lvm2 # Step 2: 添加软件源信息 yum-config-m…

NFCP502-W05 电流数据是多少安培?

YOKOGAWA NFCP502-W05 是一款由横河电机&#xff08;Yokogawa Electric Corporation&#xff09;生产的微型断路器&#xff08;Microcircuit Breaker&#xff0c;简称 MCB&#xff09;。 横河电机是一家日本的跨国公司&#xff0c;专注于自动化和控制系统、仪器和其他相关设备…

sh包装脚本

两个脚本,运行的时间间隔分别是一分钟和五分钟,放入到sh文件中,挂在后代,脚本里面的路径最好是绝对路径。 新建sh文件 新建 run_test.sh 文件,使其可以运行两个不同的 Python 脚本,一个每分钟运行一次,另一个每五分钟运行一次。下面是修改后的 run_test.sh 文件的示例:…

学QT的第二天~

小黑子鉴别界面 #include "mywidget.h" void MyWidget::bth1() { if(edit3 ->text()"520cxk"&&edit4 ->text()"1314520") { qDebug()<< "你好&#xff0c;真爱粉"; this->close(); } else { speecher->sa…

EMAIL-PHP功能齐全的发送邮件类可以发送HTML和附件

EMAIL-PHP功能齐全的发送邮件类可以发送HTML和附件 <?php class Email { //---设置全局变量 var $mailTo ""; // 收件人 var $mailCC ""; // 抄送 var $mailBCC ""; // 秘密抄送 var $mailFrom ""; // 发件人 var $mailSubje…

PyQt6--Python桌面开发(1.安装配置环境)

一.PyQt6简介 PyQt&#xff1a;PyQt是一个功能强大且成熟的GUI框架&#xff0c;基于Qt库。它提供了丰富的组件、布局和主题选项&#xff0c;以及强大的功能和灵活性。PyQt的优点是它具有现代化的外观和丰富的功能&#xff0c;适用于复杂的GUI应用程序。然而&#xff0c;由于Py…

Cobalt Strike DNS Beacon使用

0. 前言 1. 实验运行流程 2. 环境搭建 2.1.1 安装虚拟机软件VMware……大家应该都有装吧&#xff0c;这里就不教了 2.1.2 Windows 10虚拟机&#xff08;受害机&#xff09; 2.1.3 Ubuntu虚拟机&#xff08;攻击机&#xff09; 2.1 安装虚拟机 2.2 安装Java 2.3 安装Dock…

通过管理系统进行升级怎么选?

现在通过系统来做办公效率提升的又很多&#xff0c;但怎么选&#xff0c;确实很关键。 我们是在去年年初的时候进行企业系统化的。当时刚摘下口罩&#xff0c;领导也是意识到团队办公的不便&#xff0c;数据管理的混乱&#xff0c;业务流转的低效等原因&#xff0c;开始寻找各…

数据结构——链表专题3

文章目录 一、判断链表是否有环二、返回入环的第一个节点三、随机链表的复制 一、判断链表是否有环 原题链接&#xff1a;判断链表是否有环 这道题可以使用快慢指针&#xff0c;fast一次走两步&#xff0c;slow一次走一步&#xff0c;如果有环&#xff0c;它们在环里面必定会…

SAP-ABAP-视图

1、什么是视图&#xff1f; 当需要查询多个表中的某些字段的数据时&#xff0c;就可以使用视图。视图不影响数据库中的数据&#xff0c;仅作为查询手段或工具。 2、视图类型&#xff1a; 数据库视图和维护视图经常使用。 3、创建视图SE11 3.1、数据库视图 可以直接输入表名…

【半个月我拿下了软考证】软件设计师高频考点--系统化教学-计算机与组成原理

&#x1f468;‍&#x1f4bb; 收录于专栏&#xff1a;软件设计师考点暴击 ⭐&#x1f170;️进入狂砍分⭐ ⭐软件设计师高频考点文档&#xff0c; ⭐软件设计师高频考点专栏 ⭐⭐ &#x1f3b6;&#xff08;1) 考点6&#xff0c;流水线 考点&#xff1a;流水线相关的计算 可…

《QT实用小工具·六十》Qt 多列时间轴控件

1、概述 源码放在文章末尾 Qt 多列时间轴控件。 可与多段字符串格式自由转换&#xff0c;也可手动添加列表项。 专门用来以时间轴作为事件线发展顺序的故事大纲。 特点 时间背包功能&#xff1a;记录所有物品或属性发生的变化&#xff0c;随时回溯 时间可输入任意内容&…

linux学习:音视频编程+alsa声音架构

目录 概念 采样 量化 编码 音频文件wav 格式 标准音频接口 ALSA 录制音频 步骤 api 获取pcm设备句柄 设置 PCM 设备参数 代码 播放音频 步骤 代码 概念 信号都是模拟信号&#xff0c;不管是声音还是光线&#xff0c;这些模拟信号需要被 A/D 转换器转换成数字信…

RK3576芯片规格,以及与RK3588对比

瑞芯微RK3576是一款高性能、低功耗的SoC&#xff08;系统级芯片&#xff09;处理器&#xff0c;适用于基于ARM的PC、边缘计算设备、个人移动互联网设备等多种应用场景。它采用Arm架构的八核心CPU&#xff0c;集成了GPU、MCU、NPU、VPU等多种计算核心&#xff0c;并具有丰富的外…

我的256天之创作纪念日

目录 时光 数据的一些变化 开心的事 憧憬 时光 自上次CSDN的消息推送&#xff0c;又一个128天过去了&#xff0c;整天的工作和生活都在忙忙碌碌中度过&#xff0c;每到能静下来片刻&#xff0c;都倍感珍惜。因为一些原因&#xff0c;能够陪伴家人的时间越来越少&#xff…

【LLM 论文】OpenAI 基于对比学习微调 LLM 得到嵌入模型

论文&#xff1a;Text and Code Embeddings by Contrastive Pre-Training ⭐⭐⭐⭐ OpenAI 一、论文速读 这篇论文基于大型生成式 LLM 通过对比学习来微调得到一个高质量的 text 和 code 的 embedding 模型。 训练数据的格式&#xff1a;是一堆 ( x i , y i ) (x_i, y_i) (x…