JavaScript 条件判断

article/2025/10/16 8:59:51

JavaScript 条件判断

单行条件判断
JavaScript使用if () { ... } else { ... }来进行条件判断。
流程图 if (){ }else{ }

例如,根据年龄显示不同内容,可以用if语句实现如下:

var age = 20;
if (age >= 18) { // 如果age >= 18为true,则执行if语句块
alert('adult');
} else { // 否则执行else语句块
alert('teenager');
}

其中else语句是可选的。如果语句块只包含一条语句,那么可以省略{}:

var age = 20;
if (age >= 18)
alert('adult');
else
alert('teenager');

省略{}的危险之处在于,如果后来想添加一些语句,却忘了写{},就改变了if...else...的语义,例如:

var age = 20;
if (age >= 18)
alert('adult');
else
console.log('age < 18'); // 添加一行日志
alert('teenager'); // <- 这行语句已经不在else的控制范围了

上述代码的else子句实际上只负责执行console.log('age < 18');,原有的alert('teenager');已经不属于if...else...的控制范围了,它每次都会执行。
相反地,有{}的语句就不会出错:

var age = 20;
if (age >= 18) {
alert('adult');
} else {
console.log('age < 18');
alert('teenager');
}

这就是为什么我们建议永远都要写上{}

多行条件判断

流程图 if(){}else if(){} else if (){ }else{}

如果还要更细致地判断条件,可以使用多个if...else...的组合:

var age = 3;
if (age >= 18) {
alert('adult');
} else if (age >= 6) {
alert('teenager');
} else {
alert('kid');
}

上述多个if...else...的组合实际上相当于两层if...else...

var age = 3;
if (age >= 18) {
alert('adult');
} else {
if (age >= 6) {
alert('teenager');
} else {
alert('kid');
}
}

但是我们通常把else if连写在一起,来增加可读性。这里的else略掉了{}是没有问题的,因为它只包含一个if语句。注意最后一个单独的else不要略掉{}
请注意,if...else...语句的执行特点是二选一,在多个if...else...语句中,如果某个条件成立,则后续就不再继续判断了。
试解释为什么下面的代码显示的是teenager:

'use strict';
var age = 20;teenager

由于age的值为20,它实际上同时满足条件age >= 6age >= 18,这说明条件判断的顺序非常重要。请修复后让其显示adult。
如果if的条件判断语句结果不是true或false怎么办?例如:

var s = '123';
if (s.length) { // 条件计算结果为3
//
}

JavaScript把nullundefined0NaN和空字符串''视为false,其他值一概视为true,因此上述代码条件判断的结果是true
例子
小明身高1.75,体重80.5kg。请根据BMI公式(体重除以身高的平方)帮小明计算他的BMI指数,并根据BMI指数:
低于18.5:过轻
18.5-25:正常
25-28:过重
28-32:肥胖
高于32:严重肥胖
if...else...判断并显示结果:

var height = parseFloat(prompt('请输入身高(m):'));
var weight = parseFloat(prompt('请输入体重(kg):'));
let bmi =weight / height * height;
if(bmi >25 && bmi <28){
console.log("过重");
}else if(bmi >28 && bmi <32){
console.log("肥胖");
}else if(bmi >32){
console.log("严重肥胖");
}else if (bmi <18.5){
console.log("过轻");
}else if(bmi >18.5 && bmi<25 ){
console.log("正常");
}


http://chatgpt.dhexx.cn/article/s8BRQ7B3.shtml

相关文章

JavaScript的判断语句

一、if语句 语法:if (判断的条件) {当小括号内的条件为真, 然后才会执行} var a 1;a 2;if (a 1) {console.log(1); }if (a 2) {console.log(2);}二、if……else语句 语法:if (判断的条件) {当小括号内的条件为真, 然后才会执行} else{否则执行else里面的}var a -1;i…

javascript怎么判断是否为对象

判断方法&#xff1a; 1、使用toString()来判断&#xff1b; 2、使用“obj.constructor Object”来判断&#xff1b; 3、使用“typeof obj Object”来判断&#xff1b; 4、利用instanceof关键字来判断。 5、$.isPlainObject() 判断指定参数是否是一个纯粹的对象&#xf…

定制RPM包(FPM和原生rpmbuild)

例子&#xff1a; Redis打包(FPM工具) Nginx打包RPM&#xff08;FPM工具&#xff09; Nginx&#xff08;SPEC文件打包&#xff09; Redis&#xff08;SPEC文件打包&#xff09; 一、FPM工具进行打包 1. 更新yum软件源 yum update2. 安装fpm模块依赖 yum -y install ruby ru…

12.4 RPMB

UFS里&#xff0c;有这么一个LU&#xff0c;主机往该LU写数据时&#xff0c;UFS设备会校验数据的合法性&#xff0c;只有特定的主机才能写入&#xff1b;同时&#xff0c;主机在读取数据时&#xff0c;也提供了校验机制&#xff0c;保证了主机读取到的数据是从该LU上读的数据&a…

rpmbuild编译安装制作rpm包

什么是rpm包? rpm 相当于windows中的安装文件,它会自动处理软件包之间的依赖关系。 rpm优点: 包管理系统简单,通过几个命令就可以实现包的安装、升级、卸载。 安装速度比源码包快的多。 缺点: 经过编译,不能看到源代码,功能选择不如源码灵活。依赖性强。 首先说一下流程…

Linux下软件部署安装管理----rpmbuild打包rpm包部署安装

来源&#xff1a;微信公众号「编程学习基地」 文章目录 1.安装rpmbuild2.rpm包制作打包rpm包 3.rpm包安装4.rpm包卸载 1.安装rpmbuild yum install rpmbuild yum install rpmdevtools创建rpm包管理路径&#xff0c;生成rpm相关目录 RPM打包的时候需要编译源码&#xff0c;还…

rpmbuild打包rpm

一、rpmbuild及rpm rpm rpm命令 是RPM软件包的管理工具。rpm原本是Red Hat Linux发行版专门用来管理Linux各项套件的程序&#xff0c;由于它遵循GPL规则且功能强大方便&#xff0c;因而广受欢迎。逐渐受到其他发行版的采用。RPM套件管理方式的出现&#xff0c;让Linux易于安…

RPMB详解

这里写自定义目录标题 RPMB详解1. 简介1.1. 概述1.2. 基本原理 2. 命令需求3. 用于RPMB访问的数据帧4. RPMB的组成5. mac计算6. 访问流程6.1. 写认证密钥&#xff08;write Authentication Key&#xff09;6.2. 读计数器值&#xff08;Reading of the Counter Value&#xff09…

python项目使用setuptools和rpmbuild构建rpm包

python项目使用setuptools和rpmbuild构建rpm包 文章目录 python项目使用setuptools和rpmbuild构建rpm包一、setuptools二、使用rpmbuild&#xff0c;编写.spec文件构建rpm包三、使用pyinstaller四、参考文献&#xff1a; 一、setuptools 作为 Python 标准的打包及分发工具&…

rpm(基本命令、Makefile、建立rpmbuild编包)

文章目录 一、rpm基本命令介绍1.安装软件2、升级软件3、查询软件包的详细信息4、查询某个文件是属于那个rpm包的5、查该软件包所包含的文件6、查看软件包所依赖的软件7、查看某个包是否被安装8、卸载 二、rpm命令实践三、把c语言程序和makefile内容&#xff0c;编译情况和执行情…

rpmbuild制作rpm 包

什么是rpm包&#xff1f; rpm 相当于windows中的安装文件&#xff0c;它会自动处理软件包之间的依赖关系。 rpm优点&#xff1a; 包管理系统简单&#xff0c;通过几个命令就可以实现包的安装、升级、卸载。 安装速度比源码包快的多。缺点&#xff1a; 经过编译&#xff0c…

项目打包rpm包(rpmbuild)

这里以python项目为例&#xff0c;通过rpmbuild工具打包成rpm包&#xff0c;并进行安装验证 rpmbuild打包 rpm流程 构建rpmbuild打包目录 rpmbuild 默认变量配置文件 将我们的python项目和依赖包压缩成xx.tar.gz格式&#xff0c;并copy到SOURCE目录 我们这里以datalake-demo…

前向星和链式前向星

链接&#xff1a;https://blog.csdn.net/ACdreamers/article/details/16902023 我们首先来看一下什么是前向星. 前向星是一种特殊的边集数组,我们把边集数组中的每一条边按照起点从小到大排序,如果起点相同就按照终点从小到大排序, 并记录下以某个点为起点的所有边在数组中的…

关于链式前向星

最近看了许多题目都用了比较奇怪的东西… 后面才发现是神奇的链式前向星….. 听名字就觉得很牛啊&#xff01; 然而其实很简单…… 组成:begin,next,to,w,与一个用来标记的e begin[n]数组&#xff1a;代表编号为n的点,最后一条边的储存位置 next[n]:是用来保存从同一个点…

链式前向星(加快图的搜索)

存储一个图通常有两种方式&#xff1a;邻接矩阵和邻接表。如果一个图中的边非常少&#xff0c;那么邻接矩阵就比较稀疏&#xff0c;浪费空间&#xff0c;如果点非常多&#xff0c;则矩阵的内存有可能会爆掉。用向量实现的邻接表在点非常多的时候同样比较慢&#xff0c;在一些题…

链式前向星存储图

第七天链式前向星存图 图片如下所示 本代码存的是有向图&#xff0c;图示为无向图。 #include<iostream> using namespace std; const int maxn 100; struct node//to 边的终点编号&#xff0c;w 权值&#xff0c; next 以 x 为起点的上一条边的编号 {int to,w,next;…

链式前向星存图 详细解析

文章目录 链式前向星完整代码 链式前向星 链式前向星是一种图的存储方式&#xff0c;相比于 邻接矩阵和邻接表 &#xff0c;链式前向星是一种静态链表存储&#xff0c;用边集数组和邻接表相结合&#xff0c;可以快速访问一个顶点的所有邻接点。 在某些算法题中使用还很频繁&a…

C++之链式前向星

链式前向星 基本定义以及实现链式前向星实现DFSBFS 基本定义以及实现 (若果有一定了解&#xff0c;可以跳过第一部分&#xff0c;直接看第二部分) 我们首先来看一下什么是前向星. 前向星是一种特殊的边集数组,我们把边集数组中的每一条边按照起点从小到大排序,如果起点相同就按…

图的存储 —— 链式前向星

图的存储 —— 链式前向星 链式前向星采用了一种静态链表存储方式&#xff0c;将边集数组和邻接表相结合&#xff0c;可以快速访问一个节点的所有邻接点&#xff0c;在算法竞赛中被广泛应用。 链式前向星有如下两种存储结构。 边集数组&#xff1a;edge[]&#xff0c;edge[i…

简述链式前向星

一、前言 我们常见的存图数据结构有两种&#xff0c;一种是邻接矩阵&#xff0c;另一种是邻接表。而在邻接矩阵中&#xff0c;空间复杂度为 O ( n 2 ) O(n^2) O(n2)&#xff0c;在稀疏图的情况下&#xff0c;相较于邻接表浪费了许多空间。而常规的邻接表是用链表进行操作&…