登录
/
注册
首页
论坛
其它
首页
科技
业界
安全
程序
广播
Follow
关于
导读
排行榜
资讯
发帖说明
登录
/
注册
账号
自动登录
找回密码
密码
登录
立即注册
搜索
搜索
关闭
CSDN热搜
程序园
精品问答
技术交流
资源下载
本版
帖子
用户
软件
问答
教程
代码
写记录
写博客
小组
VIP申请
VIP网盘
网盘
联系我们
发帖说明
道具
勋章
任务
淘帖
动态
分享
留言板
导读
设置
我的收藏
退出
腾讯QQ
微信登录
返回列表
首页
›
业界区
›
业界
›
Web前端入门第 59 问:JavaScript 条件语句中善用 retur ...
Web前端入门第 59 问:JavaScript 条件语句中善用 return 让代码更清晰
[ 复制链接 ]
损注
2025-6-3 09:58:15
猛犸象科技工作室:
网站开发,备案域名,渗透,服务器出租,DDOS/CC攻击,TG加粉引流
条件语句
JS 的条件语句不太多,就 if 和 switch 两个,不过他们的使用方式也可以算是眼花缭乱了。
if 语句
if 字面意思:如果 xxx。程序中的用法也是这样,如果条件为真,则执行执行代码块,反之则不执行。
语法:
if (条件) {
// 条件为真时执行
} else if (其他条件) {
// 前一个条件为假且当前条件为真时执行
} else if (其他条件) {
// 前面所有条件为假且当前条件为真时执行
} else {
// 所有条件均为假时执行
}
复制代码
基础用法:
if (true) {
console.log('条件为真执行代码块');
}
// 如果代码块中只有一个语句,可以省略花括号
if (true) console.log('条件为真执行代码块');
复制代码
if & else 用法:
const age = 20;
if (age < 18) {
console.log('未成年');
} else {
console.log('成年人');
}
// 也可省略花括号
if (age < 18) console.log('未成年');
else console.log('成年人');
复制代码
完整示例:
const age = 20;
if (age < 18) {
console.log('未成年');
} else if (age >= 18 && age < 50) {
console.log('成年人');
} else if (age >= 50 && age < 65) {
console.log('中年人');
} else {
console.log('老年人');
}
复制代码
虽然 if 条件语句的语法上支持省略花括号,但在实际编码中,还是
不太建议
这么做,代码可读性降低,导致维护成本增加。
switch 语句
switch 语句和 if 语句很像,都用于条件判断,但 switch 语句中不支持条件表达式,case 后面只能是一个值或者运算表达式。
使用时特别注意 break 关键字,如果少了这个,您的代码会出大篓子。
使用 switch 语句:
const fruit = 'apple';
switch (fruit) {
case 'apple':
console.log('苹果');
break;
case 'banana':
console.log('香蕉');
break;
case 'orange':
console.log('橘子');
break;
default:
console.log('其他水果');
break;
}
复制代码
以下代码
错误
写法,将始终都是 default 分支:
const age = 20;
switch (age) {
case age < 18:
console.log('未成年');
break;
case age >= 18 && age < 50:
console.log('成年人');
break;
case age >= 50 && age < 65:
console.log('中年人');
break;
default:
console.log('老年人');
}
复制代码
但可以这样用:
const fruit = 'apple';
const apple = 'apple';
switch (fruit) {
case apple: // 可以使用变量
console.log('苹果');
if (true) { // case 中可以使用条件语句
console.log('进入条件语句');
}
break;
case 'ban' + 'ana': // 可以使用运算符
console.log('香蕉');
break;
default:
console.log('其他水果');
break;
}
复制代码
使用 switch 语句时,如果少了 break 关键字,就触发了神奇的 case 穿透 问题。看例子:
const fruit = 'apple';
switch (fruit) {
case 'apple':
console.log('苹果');
// 没有 break,代码会走到下一个 case
case 'banana':
console.log('香蕉');
// 依然没有 break,继续往下走
case 'orange':
console.log('橘子');
// 仍然没有 break,继续
default:
console.log('其他水果');
// switch 结束了
}
复制代码
以上代码会同时输出:
苹果
香蕉
橘子
其他水果
复制代码
if 优化
代码中免不了会出现很多 if 判断情况,如果代码组织能力太差,那就像捅了 if 窝一样~~
看一个在曾经项目中前辈写的代码:
if (score.length != 0) {
if (score >= 0 && score <= 10) {
if (res1.status === '1') {
if (res2.status === '1') {}
if (viewShow) {
} else {}
} else {}
} else {}
} else {}
复制代码
卫语句优化后:
function checkOrder(order) {
if (order.isValid) {
if (order.items.length > 0) {
if (order.total > 0) {
// 核心逻辑
return '1';
} else {
return '2';
}
} else {
return '3';
}
} else {
return '4';
}
}
复制代码
优化后:
[code]function isProductAvailable(product) { // 判断产品是否有库存 if (product.stock
Web
前端
门第
JavaScript
条件
相关帖子
web框架——flask-异常处理/全局钩子/jinja2引擎
使用 swagger-typescript-api 在前端项目里生成请求代码
前端纯小白使用AI开发实战:一个免费的在线拼图工具Collaigo
Actix-Web完整项目实战:博客 API
VUE前端项目规范.md---大模型辅助开发使用约束
SvelteKit 开发实战:拥抱 Web 标准 (Web Standards)
在前端项目中安全调用大模型 API 的实践,我是怎么做的?
MySQL 筛选条件放 ON 后 vs 放 WHERE 后
纯前端调用大模型真的安全吗?我踩过的坑比示例代码多得多
还在痛苦前端的拖拽排序吗?SortableJS 轻松搞定
回复
使用道具
举报
提升卡
置顶卡
沉默卡
喧嚣卡
变色卡
千斤顶
照妖镜
相关推荐
安全
web框架——flask-异常处理/全局钩子/jinja2引擎
2
924
求几少
2025-11-27
业界
使用 swagger-typescript-api 在前端项目里生成请求代码
1
1004
电棘缣
2025-11-27
业界
前端纯小白使用AI开发实战:一个免费的在线拼图工具Collaigo
1
94
翁谌缜
2025-11-27
业界
Actix-Web完整项目实战:博客 API
1
520
馏栩梓
2025-12-01
科技
VUE前端项目规范.md---大模型辅助开发使用约束
3
1002
丁若云
2025-12-01
业界
SvelteKit 开发实战:拥抱 Web 标准 (Web Standards)
3
974
岳娅纯
2025-12-02
业界
在前端项目中安全调用大模型 API 的实践,我是怎么做的?
1
440
趣侮
2025-12-08
安全
MySQL 筛选条件放 ON 后 vs 放 WHERE 后
1
956
热琢
2025-12-10
安全
纯前端调用大模型真的安全吗?我踩过的坑比示例代码多得多
0
959
静轾
2025-12-16
业界
还在痛苦前端的拖拽排序吗?SortableJS 轻松搞定
0
151
啦迩
2025-12-18
回复
(2)
刘凤
2025-10-11 00:43:00
回复
使用道具
举报
照妖镜
程序园永久vip申请,500美金$,无限下载程序园所有程序/软件/数据/等
感谢,下载保存了
觐有
2025-10-27 01:17:55
回复
使用道具
举报
照妖镜
程序园永久vip申请,500美金$,无限下载程序园所有程序/软件/数据/等
感谢分享
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
立即注册
回复
本版积分规则
回帖并转播
回帖后跳转到最后一页
签约作者
程序园优秀签约作者
发帖
损注
2025-10-27 01:17:55
关注
0
粉丝关注
21
主题发布
板块介绍填写区域,请于后台编辑
财富榜{圆}
3934307807
991124
anyue1937
9994892
kk14977
6845358
4
xiangqian
638210
5
韶又彤
9997
6
宋子
9981
7
闰咄阅
9993
8
刎唇
9993
9
俞瑛瑶
9998
10
蓬森莉
9949
查看更多
今日好文热榜
29
JAVA 使用国密 SM4 加解密
149
Minio开始收费了?别慌,这5种免费的分布式
24
vue 甘特图 vxe-gantt 手动增加一条依赖线
640
荣耀再续 | 蚁景科技卫冕第138届广交会测试
103
荣耀再续 | 蚁景科技卫冕第138届广交会测试
932
上周热点回顾(12.15-12.21)
830
国产化Word处理组件Spire.DOC教程:通过Pyt
474
架构师必备:后端程序员需要了解的数仓知识
324
【GitHub每日速递 20251222】Paru:功能爆
960
企业级多智能体系统(MAS)架构深度研究:C
196
北京守嘉陪诊登顶2025年度陪诊行业排行 专
235
流量暴跌 96%:AI 聊天机器人正在构建危险
176
AI生成论文查重能过么?8款AI写论文软件测
511
懒人长期理财的投资系统
508
第40次CCFCSP认证邮寄
868
第40次CCFCSP认证邮寄
854
第40次CCFCSP认证邮寄
444
用 .NET MAUI 10 + VS Copilot 从 0 开发一
872
【节点】[GammaToLinearSpaceExact节点]原
380
[20251218]测试sql语句子光标的执行性能(21