14 JavaScript学习:条件语句

JavaScript条件语句

在这里插入图片描述

JavaScript中的条件语句主要用于根据条件执行不同的代码块。以下是对JavaScript条件语句概念的详细解释和分类:

  1. if语句

    • 单个if语句:最简单的条件语句,根据条件判断是否执行特定的代码块。
    • if…else语句:在条件成立时执行一段代码块,在条件不成立时执行另一段代码块。
    • if…else if…else语句:用于测试多种可能情况的语句。
  2. switch语句

    • switch…case语句:基于不同的条件值执行不同的代码块,适用于多个条件值的情况。
  3. 三元运算符

    • 使用 条件 ? 值1 : 值2 的形式,可以根据条件的真假返回不同的值。
  4. 逻辑操作符

    • 逻辑与(&&):当所有条件都为真时才执行相关代码。
    • 逻辑或(||):只要有一个条件为真就执行相关代码。
    • 逻辑非(!):将true转换为false,false转换为true。
  5. Falsy值和Truthy值

    • JavaScript中有Falsy和Truthy概念,Falsy值包括 false、0、‘’、null、undefined 和 NaN,其他值被视为Truthy值。
  6. 嵌套的条件语句

    • 可以在一个条件语句内部嵌套另一个条件语句,以实现更复杂的逻辑判断。
  7. 条件语句应用

    • 条件语句通常用于根据用户输入或程序状态来进行决策,可以实现按需执行不同的代码块。

通过合理使用上述条件语句,您可以根据特定条件执行相应的代码,从而实现灵活的控制流程和逻辑。这些条件语句的结合使用能够帮助您构建功能完善的JavaScript应用程序。

if语句

在JavaScript中,单纯的 if 语句用于根据特定条件执行一段代码。下面是一个简单的示例,演示了如何使用单纯的 if 语句:

let hour = 10;if (hour < 12) {console.log('Good morning!');
}

在上面的示例中,如果 hour 的值小于12,则会输出 'Good morning!'。如果 hour 的值不满足条件,console.log 语句将不会被执行。

单纯的 if 语句非常适用于只有一个条件需要判断的情况。在实际编程中,您可以根据不同的条件来执行不同的代码块,实现程序的流程控制和逻辑判断。

if…else语句

在JavaScript中,if...else语句用于在条件为真时执行一段代码块,而在条件为假时执行另一段代码块。下面是一个示例,展示了如何使用if...else语句:

let age = 18;if (age >= 18) {console.log('您已经成年!');
} else {console.log('您还未成年!');
}

在上面的示例中,如果age的值大于等于18,则会输出'您已经成年!';否则,会输出'您还未成年!'。这样可以根据年龄的不同来显示不同的提示信息。

if...else语句在需要根据条件选择不同路径执行代码块时非常有用。通过合理使用if...else语句,您可以实现更复杂的逻辑判断和流程控制。

if…else if…else语句

JavaScript中的if...else if...else语句允许您根据多个条件选择不同的代码块执行。这种语句非常适用于需要考虑多种情况的场景。以下是一个示例:

let time = 14;if (time < 12) {console.log('早上好!');
} else if (time < 18) {console.log('下午好!');
} else {console.log('晚上好!');
}

在上面的示例中,根据time的不同值,会输出不同的问候语。如果time小于12,则输出'早上好!';如果time在12到18之间,则输出'下午好!';否则输出'晚上好!'

通过合理使用if...else if...else语句,您可以根据不同的情况选择执行相应的代码块,实现复杂的条件判断和程序流程控制。

if…else嵌套语句

在JavaScript中,您可以嵌套使用if...else语句来处理更复杂的条件逻辑。这种嵌套方式允许您在一个条件块内再包含另一个条件块。以下是一个简单的示例:

let hour = 10;
let minute = 30;if (hour < 12) {console.log('上午');if (minute < 30) {console.log('整点');} else {console.log('半点');}
} else {console.log('下午或晚上');
}

在上面的示例中,根据小时数和分钟数的不同,会输出不同的提示信息。如果小时数小于12,则会进入嵌套的条件判断,根据分钟数输出不同的提示;否则,会直接输出’下午或晚上’。

通过嵌套使用if...else语句,您可以处理更加复杂的条件情况,但需要注意保持逻辑清晰,避免嵌套层级过深造成代码难以理解。

switch语句

在JavaScript中,switch语句用于根据表达式的值选择不同的代码块执行。switch语句比较表达式的值与不同的情况(case),并执行与该情况相对应的代码块。下面是一个switch语句的示例:

let day = 3;
let dayName;switch (day) {case 0:dayName = '星期日';break;case 1:dayName = '星期一';break;case 2:dayName = '星期二';break;case 3:dayName = '星期三';break;case 4:dayName = '星期四';break;case 5:dayName = '星期五';break;case 6:dayName = '星期六';break;default:dayName = '无效的日期';
}console.log('今天是' + dayName);

在上面的示例中,根据day的值不同,会选择不同的case执行相应的代码块。如果day的值为3,则输出'今天是星期三'。如果day的值不在0到6之间,则会执行default下的代码块,输出'无效的日期'

switch语句通常用于对一个表达式的多个可能值进行检测,并根据不同的值执行不同的代码块。

default关键字

在JavaScript中,default关键字通常与switch语句一起使用。当switch语句的表达式值不匹配任何case时,会执行default下的代码块。这种情况下,default充当了备选方案,处理未被明确指定的情况。

在您提供的示例中,如果day的值不在0到6之间(即不是代表星期的有效取值),则会执行default下的代码块,将dayName设置为’无效的日期’,以提示用户输入的日期无效。

default关键字在switch语句中是可选的,但在处理一些未预期的情况时,它可以作为一种安全机制,确保代码在面对未知情况时有一个明确的处理方式。

if…else和switch的不同应用场景

在这里插入图片描述

if...else语句和switch语句在JavaScript中都是用来进行条件判断的,但它们适用的场景略有不同:

  1. if...else语句

    • 用于处理逻辑较为复杂、条件相互独立的情况。
    • 可以处理范围型的条件判断,如区间或多个不同条件之间的关系。
    • 可以包含多个条件和嵌套的条件。
    • 可以处理条件数量不确定或值域非离散的情况。
  2. switch语句

    • 适用于针对一个表达式的不同取值执行不同的操作。
    • 当需要根据单个变量的不同取值进行多重选择时,switch会比if...else更加简洁。
    • 当存在大量等值匹配的情况下,switch通常比多个if...else效率更高。
    • 当出现连续的谓词判断时,switch通常不适用,因为switch只支持等值匹配。

总的来说,如果您需要进行范围判断或者条件之间有交互关系、嵌套关系时,使用if...else更为适合;而当需要根据单一变量的不同取值进行简单的路由选择时,可以选择switch语句。

三元运算符

三元运算符是一种在许多编程语言中都存在的条件表达式。它通常由一个条件表达式和两个可能的结果组成。在JavaScript中,三元运算符的语法如下所示:

condition ? expr1 : expr2

如果条件为真,则返回expr1的值;如果条件为假,则返回expr2的值。三元运算符的主要优点是简洁性,特别是在一些简单的条件情况下可以取代if...else语句,使代码更为简洁明了。

以下是一个示例:

let age = 20;
let message = (age >= 18) ? '成年人' : '未成年人';console.log(message); // 输出:'成年人'

在这个示例中,如果age大于或等于18,则message被赋值为’成年人’,否则被赋值为’未成年人’。

尽管三元运算符在简单的情况下非常有用,但当条件变得复杂或者需要执行多个语句时,使用if...else语句可能更易读和易于维护。

关注我,不迷路,共学习,同进步

关注我,不迷路,共学习,同进步

在这里插入图片描述

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

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

相关文章

【机器学习与实现】机器学习概述

目录 一、机器学习的基本概念和方法&#xff08;一&#xff09;基本概念&#xff08;二&#xff09;机器学习的一般过程举例&#xff08;三&#xff09;样本和参数估计 二、机器学习的步骤总结&#xff08;一&#xff09;机器学习的主要步骤&#xff08;二&#xff09;样本及样…

C++并发编程

基本介绍 线程 C98标准没有直接提供原生的多线程支持 在C98中&#xff0c;并没有像后来的C11标准中那样的<thread>库或其他直接的多线程工具 然而&#xff0c;这并不意味着在C98中无法实现多线程。开发者通常会使用平台特定的API&#xff08;如Windows的线程API或POSI…

vue3中的ref、isRef、shallowRef、triggerRef和customRef

1.ref 接受一个参数值并返回一个响应式且可改变的 ref 对象。 ref 对象拥有一个指向内部值的单一属性 .value property &#xff0c;指向内部值。 例&#xff1a;此时&#xff0c;页面上的 str1 也跟着变化 <template><div><button click"handleClick&quo…

严厉打击侵犯知识产权行为!法院公开审理假冒半岛超声炮知产刑事案件

随着医美行业的蓬勃发展&#xff0c;一些不法分子利用消费者对变美的渴望&#xff0c;制售假冒半岛超声炮&#xff0c;严重侵犯了消费者的合法权益&#xff0c;也破坏了医美市场的健康发展。为了维护市场秩序&#xff0c;保障消费者权益&#xff0c;各地相关监管部门持续加大监…

QT从入门到实战x篇_22_番外1_Qt事件系统

文章目录 1. Qt事件系统简介1.1 事件的来源和传递1.2 事件循环和事件分发1.2.1 QT消息/事件循环机制1.2.1.1 机制解释1.2.1.2 两个问题 1.2.2 事件分发 2. 事件过滤基础2.1 什么是事件过滤器&#xff08;Event Filter&#xff09;&#xff1f;2.2 如何安装事件过滤器 3. 事件过…

<计算机网络自顶向下> 路由器组成

路由器结构概况 路由&#xff1a;运行路由选择算法/协议&#xff08;RIP, OSPF, BGP&#xff09;生成路由表转发&#xff1a;从输入到输出链路交换数据包-根据路由表进行分组的转发中间的fabric是用来接收输入的分组交给输出端口的&#xff0c;完成局部的转发&#xff08;根据…

在广东珠海,持有软考等证书最高可获6位数补贴,快来申报!

近日&#xff0c;横琴粤澳深度合作区执行委员会印发《横琴粤澳深度合作区支持人才发展若干措施》&#xff08;以下简称《若干措施》&#xff09;及三项配套实施办法&#xff0c;鼓励企业“招贤纳士”&#xff0c;加强琴澳人才协同培养。目前&#xff0c;2024年第一批博士后专项…

星汉未来AI应用市场:一站式AI解决方案平台

星汉未来AI应用市场&#xff1a;一站式AI解决方案平台 在人工智能技术日益渗透到各行各业的今天&#xff0c;星汉未来AI应用市场为我们提供了一个集创新与实用于一体的平台。下面&#xff0c;我将为您详细介绍这个平台的各个方面。 平台特色 星汉未来AI应用市场是一个面向未…

Keil出现警告:warning: #223-D: function “XXX“ declared implicitly

这个警告表明编译器在函数使用之前没有找到函数的显式声明或定义。这通常发生在函数被使用之前没有在当前文件中进行声明或定义&#xff0c;或者头文件未正确包含。 解决方式&#xff1a; 在当前文件中添加函数声明&#xff1a;在使用函数之前&#xff0c;在当前文件中添加函…

maixcam如何无脑运行运行别人的模型(以安全帽模型为例)

maixcam如何无脑运行运行别人的模型&#xff08;以安全帽模型为例&#xff09; 本文章主要讲如何部署上传的模型文件&#xff0c;以及如果你要把你模型按照该流程应该怎么修改&#xff0c;你可以通过该文章得到你想要的应该&#xff0c;该应用也包含的退出按钮&#xff0c;是屏…

书生·浦语大模型-第七节课笔记/作业

笔记 还没看到视频 但评测对于模型优化是非常重要的&#xff0c;指引了模型选择与优化的方向 评测过程 大海捞针&#xff1a; 通过将关键信息随机插入一段长文本的不同位置&#xff0c;形成大语言模型 (LLM) 的Prompt&#xff0c;通过测试大模型是否能从长文本中提取出关键…

协议的定制之序列化与反序列化 | 守护进程

目录 一、再谈协议 二、序列化与反序列化 三、网络计算器的简单实现 四、网络计算器完整代码 五、代码改进 六、守护进程 七、Json序列化与反序列化 八、netstat 一、再谈协议 是对数据格式和计算机之间交换数据时必须遵守的规则的正式描述。简单的说了&#xff0c;网络…

佛山南海区桂城珠宝玉石电商协会举办2023年度电商企业颁奖典礼

4月24日&#xff0c;佛山市南海区桂城珠宝玉石电商协会隆重举办第一届三次会员大会暨2023年度电商企业颁奖典礼&#xff0c;广邀各级政府领导、行业组织、珠宝商场、电商企业、珠宝直播达人以及新闻媒体嘉宾&#xff0c;共见璀璨&#xff0c;共话新发展、新机遇。这是平洲玉器珠…

docker 启动时报错

docker 启动时报如下错误 Job for docker.service failed because the control process exited with error code. See "systemctl status docker.service" and "journalctl -xe" for details 因为安装docker时添加了镜像源 解决方案&#xff1a; mv /etc/…

pwn--realloc [CISCN 2019东南]PWN5

首先学习一下realloc这个函数&#xff0c;以下是文心一言的解释&#xff1a; realloc是C语言库函数之一&#xff0c;用于重新分配内存空间。它的主要功能是调整一块内存空间的大小。当需要增加内存空间时&#xff0c;realloc会分配一个新的更大的内存块&#xff0c;然后将原内…

冯唐成事心法笔记 —— 知世

系列文章目录 冯唐成事心法笔记 —— 知己 冯唐成事心法笔记 —— 知人 冯唐成事心法笔记 —— 知世 冯唐成事心法笔记 —— 知智慧 文章目录 系列文章目录PART 3 知世 成事者的自我修养怎样做一个讨人喜欢的人第一&#xff0c;诚心第二&#xff0c;虚心 如何正确看待别人的评…

超越边界:如何ChatGPT 3.5、GPT-4、DALL·E 3和Midjourney共同重塑创意产业

KKAI&#xff08;kkai人工智能&#xff09;是一个整合了多种尖端人工智能技术的多功能助手平台&#xff0c;融合了OpenAI开发的ChatGPT3.5、GPT4.0以及DALLE 3&#xff0c;并包括了独立的图像生成AI—Midjourney。以下是这些技术的详细介绍&#xff1a; **ChatGPT3.5**&#xf…

edge浏览器新建标签页闪退怎么解决?(打不开标签页)

文章目录 问题描述方法一方法二 问题描述 昨天开始出现这个问题&#xff0c;每次点击 打开一个新的标签页&#xff0c;马上就闪退了。 既然是新建标签页的问题&#xff0c;那么就在设置里看一下新建标签页发生了什么问题。 方法一 进入设置&#xff0c;会发现&#xff0c;有…

信号分解 | SSA(奇异谱分析)-Matlab

分解效果 SSA(奇异谱分析) 信号分解 | SSA(奇异谱分析)-Matlab 奇异谱分析(Singular Spectrum Analysis,简称SSA)是一种用于时间序列分析的方法。它可以用于数据降维、信号分解、噪声去除和预测等应用。 SSA的基本思想是将时间序列分解为若干个成分,每个成分代表着不同的…

语言模型的发展

文章目录 语言模型的发展历程大语言模型的能力特点大语言模型关键技术概览大语言模型对科技发展的影响 语言模型的发展历程 一般来说&#xff0c;语言模型旨在对于人类语言的内在规律进行建模&#xff0c;从而准确预测词序列中未来&#xff08;或缺失&#xff09;词或词元&…