登录
/
注册
首页
论坛
其它
首页
科技
业界
安全
程序
广播
Follow
关于
每日签到
每天签到奖励2圆-6圆
发帖说明
VIP申请
登录
/
注册
账号
自动登录
找回密码
密码
登录
立即注册
搜索
搜索
关闭
CSDN热搜
程序园
精品问答
技术交流
资源下载
本版
帖子
用户
软件
问答
教程
代码
写记录
写博客
VIP申请
VIP网盘
网盘
联系我们
每日签到
道具
勋章
任务
设置
我的收藏
退出
腾讯QQ
微信登录
返回列表
首页
›
业界区
›
业界
›
Web前端入门第 59 问:JavaScript 条件语句中善用 retur ...
Web前端入门第 59 问:JavaScript 条件语句中善用 return 让代码更清晰
[ 复制链接 ]
损注
2025-6-3 09:58:15
条件语句
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前端入门第 84 问:JavaScript sessionStorage 那些容易踩坑的地方
JavaScript 多人协作的“修罗场”:如何优雅地规避函数重名问题?
分享一种前端模板化的思路
JavaScript数据表格方案AG Grid主题定制新升级:Figma 设计系统全面打通设计与开发
零基础不会前端?我靠AI做出了一个育儿补贴计算器小程序!
记录---前端实现倒计时为什么会存在误差呢
Web server failed to start. Port 8080 was already in use. 端口被占用
Selenium Web自动化:如何稳定地定位动态元素?8种方法汇总
vip免费申请,1年只需15美金$
回复
使用道具
举报
提升卡
置顶卡
沉默卡
喧嚣卡
变色卡
千斤顶
照妖镜
相关推荐
业界
Web前端入门第 84 问:JavaScript sessionStorage 那些容易踩坑的地方
0
429
蟠鲤
2025-08-20
业界
JavaScript 多人协作的“修罗场”:如何优雅地规避函数重名问题?
0
464
毡轩
2025-08-20
安全
分享一种前端模板化的思路
0
662
后沛若
2025-08-22
代码
JavaScript数据表格方案AG Grid主题定制新升级:Figma 设计系统全面打通设计与开发
0
700
上官银柳
2025-08-25
业界
零基础不会前端?我靠AI做出了一个育儿补贴计算器小程序!
0
456
宿遘稠
2025-08-27
安全
记录---前端实现倒计时为什么会存在误差呢
0
247
扈梅风
2025-08-30
业界
Web server failed to start. Port 8080 was already in use. 端口被占用
0
577
粹脍誊
2025-09-01
科技
Selenium Web自动化:如何稳定地定位动态元素?8种方法汇总
0
431
涣爹卮
2025-09-06
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
立即注册
回复
本版积分规则
回帖并转播
回帖后跳转到最后一页
签约作者
程序园优秀签约作者
发帖
损注
2025-6-3 09:58:15
关注
0
粉丝关注
18
主题发布
板块介绍填写区域,请于后台编辑
财富榜{圆}
敖可
9984
杭环
9988
凶契帽
9988
4
氛疵
9988
5
黎瑞芝
9988
6
猷咎
9986
7
里豳朝
9986
8
肿圬后
9986
9
蝓俟佐
9984
10
虽裘侪
9984
查看更多