写代码时经常遇到这种情况:用户点了按钮,但没填姓名;上传了文件,但格式既不是 JPG 也不是 PNG;甚至天气预报程序查不到城市数据……这时候,条件判断不能只盯着“能匹配上”的情况,还得留一手——加个默认情况。
为什么默认情况不能少?
就像你去奶茶店点单,菜单上写着「加糖:多、少、无」,但如果顾客说「我要放蜂蜜」呢?菜单没写,但店员不会愣住,而是说「好的,我帮您备注」——这个「备注」就是默认情况。代码里也一样,现实世界千变万化,穷举所有分支不现实,default 就是那个靠谱的“兜底人”。
if 语句里的 else 就是默认情况
最常见也最直白的方式,就是 if 后面跟 else:
let score = 85;
if (score >= 90) {
console.log("优秀");
} else if (score >= 80) {
console.log("良好");
} else if (score >= 60) {
console.log("及格");
} else {
console.log("不及格,请加油"); // 这就是默认情况
}
注意:else 一定放在最后,不带任何条件,它负责接住前面所有 if 和 else if 都没拦住的值。
switch 语句靠 default 收尾
当判断的是固定几个取值(比如菜单选项、状态码),switch 更清晰。它的默认情况叫 default,必须写在最后(虽然语法允许插在中间,但强烈不建议):
let status = "pending";
switch (status) {
case "success":
showGreenCheck();
break;
case "error":
showErrorMsg();
break;
case "loading":
showSpinner();
break;
default:
console.warn("未知状态:" + status); // 默认情况,防崩防懵
showDefaultIcon();
break;
}
三元运算符也有默认逻辑
短小判断用 ? :,它的“else”部分天然就是默认分支:
let userType = "vip";
let accessLevel = userType === "admin" ? "full" :
userType === "vip" ? "premium" :
"basic"; // 最后一个冒号后面,就是默认情况
不过嵌套太多容易晕,两层以内还行,再深就建议换 if 或封装函数。
别让默认情况成摆设
见过有人这么写:
if (x > 0) {
doPositive();
} else if (x < 0) {
doNegative();
} else {
// 空着
}
看着语法没错,但 x === 0 时啥也不干,用户点击没反应,日志没记录,问题难排查。默认情况不是凑数的,至少该打个日志、给个提示、或返回安全值,比如:
} else {
console.log("x 为 0,走中性逻辑");
return 0;
}
真实场景小提醒
表单提交前校验:所有字段都非空才提交,否则弹出提示——那个「否则」就是默认;
接口返回数据:status 是 200、404、500 都处理了,但万一返回了 0 或 undefined 呢?default 得管;
微信小程序 switchTab 跳转:页面名不在预设列表里?别崩溃,跳回首页并 toast 提示。
写条件判断,别只想着“什么情况下做 A”,多问一句:“其他所有情况,我打算怎么办?”——这句话问多了,代码就稳了。