登录
/
注册
首页
论坛
其它
首页
科技
业界
安全
程序
广播
Follow
关于
导读
排行榜
资讯
发帖说明
登录
/
注册
账号
自动登录
找回密码
密码
登录
立即注册
搜索
搜索
关闭
CSDN热搜
程序园
精品问答
技术交流
资源下载
本版
帖子
用户
软件
问答
教程
代码
写记录
写博客
小组
VIP申请
VIP网盘
网盘
联系我们
发帖说明
道具
勋章
任务
淘帖
动态
分享
留言板
导读
设置
我的收藏
退出
腾讯QQ
微信登录
1
2
/ 2 页
下一页
返回列表
首页
›
业界区
›
业界
›
Web前端入门第 59 问:JavaScript 条件语句中善用 retur ...
Web前端入门第 59 问:JavaScript 条件语句中善用 return 让代码更清晰
[ 复制链接 ]
损注
2025-6-3 09:58:15
程序园永久vip申请,无限下载程序园所有程序/软件/数据/等
条件语句
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
条件
相关帖子
有没有比较简便的前端可以看到联调的时候真实URL的方法?
前端网页中粒子漂浮且与鼠标光标互动效果的实现
大学生挑战全网超详细web笔记02弹
Oracle RMAN物理备份Web系统
90%前端面试必问的12个JS核心,搞懂这些直接起飞!
web课堂笔记
前端如何防止用户重复提交表单?4 种可靠方案(附防坑指南)
JavaScript this绑定规则:告别踩坑指南!
为什么我建议前端基建有必要做 npm 仓库私有化
【JavaScript高级编程】拆解函数流水线 上
回复
使用道具
举报
提升卡
置顶卡
沉默卡
喧嚣卡
变色卡
千斤顶
照妖镜
相关推荐
安全
有没有比较简便的前端可以看到联调的时候真实URL的方法?
0
211
府扔影
2026-03-11
业界
前端网页中粒子漂浮且与鼠标光标互动效果的实现
0
1002
荆邦
2026-03-13
业界
大学生挑战全网超详细web笔记02弹
0
174
损注
2026-03-17
业界
Oracle RMAN物理备份Web系统
0
278
古修蟑
2026-03-18
安全
90%前端面试必问的12个JS核心,搞懂这些直接起飞!
0
696
樊涵菡
2026-03-18
安全
web课堂笔记
0
953
计海龄
2026-03-23
代码
前端如何防止用户重复提交表单?4 种可靠方案(附防坑指南)
0
553
茹静曼
2026-03-24
安全
JavaScript this绑定规则:告别踩坑指南!
0
71
诈知
2026-03-24
业界
为什么我建议前端基建有必要做 npm 仓库私有化
0
494
滕佩杉
2026-03-30
业界
【JavaScript高级编程】拆解函数流水线 上
0
264
姥恫
2026-03-30
回复
(22)
刘凤
2025-10-11 00:43:00
回复
使用道具
举报
照妖镜
猛犸象科技工作室:
网站开发,备案域名,渗透,服务器出租,DDOS/CC攻击,TG加粉引流
感谢,下载保存了
觐有
2025-10-27 01:17:55
回复
使用道具
举报
照妖镜
猛犸象科技工作室:
网站开发,备案域名,渗透,服务器出租,DDOS/CC攻击,TG加粉引流
感谢分享
嫁蝇
2026-1-15 02:15:48
回复
使用道具
举报
照妖镜
程序园永久vip申请,无限下载程序园所有程序/软件/数据/等
前排留名,哈哈哈
百里宵月
2026-1-19 07:28:51
回复
使用道具
举报
照妖镜
猛犸象科技工作室:
网站开发,备案域名,渗透,服务器出租,DDOS/CC攻击,TG加粉引流
感谢分享,下载保存了,貌似很强大
井晶灵
2026-1-20 11:28:14
回复
使用道具
举报
照妖镜
程序园永久vip申请,无限下载程序园所有程序/软件/数据/等
感谢发布原创作品,程序园因你更精彩
襁壮鸢
2026-1-20 14:49:56
回复
使用道具
举报
照妖镜
猛犸象科技工作室:
网站开发,备案域名,渗透,服务器出租,DDOS/CC攻击,TG加粉引流
新版吗?好像是停更了吧。
思矿戳
2026-1-23 08:41:33
回复
使用道具
举报
照妖镜
猛犸象科技工作室:
网站开发,备案域名,渗透,服务器出租,DDOS/CC攻击,TG加粉引流
谢谢楼主提供!
衣旱
2026-2-2 03:12:12
回复
使用道具
举报
照妖镜
程序园永久vip申请,无限下载程序园所有程序/软件/数据/等
用心讨论,共获提升!
左丘雅秀
2026-2-3 10:39:10
回复
使用道具
举报
照妖镜
程序园永久vip申请,无限下载程序园所有程序/软件/数据/等
感谢分享
章海
2026-2-5 19:15:46
回复
使用道具
举报
照妖镜
程序园永久vip申请,无限下载程序园所有程序/软件/数据/等
用心讨论,共获提升!
冷晓晴
2026-2-8 17:41:43
回复
使用道具
举报
照妖镜
猛犸象科技工作室:
网站开发,备案域名,渗透,服务器出租,DDOS/CC攻击,TG加粉引流
谢谢分享,试用一下
诘琅
2026-2-9 15:42:21
回复
使用道具
举报
照妖镜
程序园永久vip申请,无限下载程序园所有程序/软件/数据/等
感谢发布原创作品,程序园因你更精彩
司马黛
2026-2-9 17:15:22
回复
使用道具
举报
照妖镜
程序园永久vip申请,无限下载程序园所有程序/软件/数据/等
前排留名,哈哈哈
篙菠
2026-2-10 12:41:00
回复
使用道具
举报
照妖镜
猛犸象科技工作室:
网站开发,备案域名,渗透,服务器出租,DDOS/CC攻击,TG加粉引流
谢谢楼主提供!
钨哄魁
2026-2-10 13:06:59
回复
使用道具
举报
照妖镜
猛犸象科技工作室:
网站开发,备案域名,渗透,服务器出租,DDOS/CC攻击,TG加粉引流
喜欢鼓捣这些软件,现在用得少,谢谢分享!
旌磅箱
2026-2-11 02:20:06
回复
使用道具
举报
照妖镜
程序园永久vip申请,无限下载程序园所有程序/软件/数据/等
用心讨论,共获提升!
寨亳
2026-2-12 01:27:08
回复
使用道具
举报
照妖镜
猛犸象科技工作室:
网站开发,备案域名,渗透,服务器出租,DDOS/CC攻击,TG加粉引流
分享、互助 让互联网精神温暖你我
山真柄
2026-2-12 12:22:51
回复
使用道具
举报
照妖镜
程序园永久vip申请,无限下载程序园所有程序/软件/数据/等
感谢分享,下载保存了,貌似很强大
梁宁
2026-2-13 19:12:18
回复
使用道具
举报
照妖镜
猛犸象科技工作室:
网站开发,备案域名,渗透,服务器出租,DDOS/CC攻击,TG加粉引流
过来提前占个楼
下一页 »
1
2
/ 2 页
下一页
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
立即注册
回复
本版积分规则
回帖并转播
回帖后跳转到最后一页
浏览过的版块
安全
签约作者
程序园优秀签约作者
发帖
损注
2026-2-13 19:12:18
关注
0
粉丝关注
24
主题发布
板块介绍填写区域,请于后台编辑
财富榜{圆}
3934307807
991125
anyue1937
9994892
kk14977
6845359
4
xiangqian
638210
5
神泱
9537
6
宋子
9883
7
韶又彤
9911
8
诀锺
9036
9
荪俗
9020
10
蓬森莉
9871
查看更多
今日好文热榜
6
host怎么设置,host设置教程
245
2026国内图床深度选型指南:从需求到实测,
874
Claude Code源码泄露:8大隐藏功能曝光
674
没有技术要求,只需5步就能完成数据分析和
388
完整项目实战
764
Python 数据类型:数字、字符串与容器
823
从“救火”到“预判”:AIOps 如何用 AI 重
598
Redis 单线程真的是单线程吗?源码角度全面
426
突发!Claude Code 51万行源码全网裸奔:一
495
使用 OpenSpec + 提示词工程 + Harness 思
528
.NET 进阶之路:异步、并发与内存管理的系
497
Java 中的 实现、泛型
977
Go + Vue 接入行为验证码完整指南
624
Python 面向对象编程:从入门到实践
766
Python 面向对象编程:从入门到实践
540
Mem0:给 AI Agent 装上「长期记忆」
757
Mem0:给 AI Agent 装上「长期记忆」
632
我用 Codex 和 Gemini,做了一个本地桌面版
428
Go + Vue 接入行为验证码完整指南
510
Mem0:给 AI Agent 装上「长期记忆」