JavaScript 条件语句(if-else)
if-else 语句是最基本的条件控制结构,根据条件真假执行不同的代码块。
基本语法
JavaScript
// 单分支
if (条件) {
// 条件为真时执行
}
// 双分支
if (条件) {
// 条件为真时执行
} else {
// 条件为假时执行
}
// 多分支
if (条件1) {
// 条件1为真时执行
} else if (条件2) {
// 条件2为真时执行
} else {
// 以上条件都为假时执行
}
代码示例
JavaScript
// 单分支
let age = 18;
if (age >= 18) {
console.log('已成年');
}
// 双分支
let score = 55;
if (score >= 60) {
console.log('及格');
} else {
console.log('不及格');
}
// 多分支
let grade = 85;
if (grade >= 90) {
console.log('优秀');
} else if (grade >= 80) {
console.log('良好');
} else if (grade >= 60) {
console.log('及格');
} else {
console.log('不及格');
}
条件表达式
JavaScript
// 任何表达式都可作为条件
let x = 5;
// 比较表达式
if (x > 0) { }
// 逻辑表达式
if (x > 0 && x < 10) { }
// 变量本身(根据真假值判断)
let name = 'Tom';
if (name) { } // 非空字符串为真
let items = [];
if (items.length) { } // 0 为假
// 函数调用
function isValid() { return true; }
if (isValid()) { }
嵌套 if
JavaScript
let age = 25;
let hasLicense = true;
if (age >= 18) {
if (hasLicense) {
console.log('可以驾驶');
} else {
console.log('需要先考驾照');
}
} else {
console.log('未成年');
}
// 使用逻辑运算符简化
if (age >= 18 && hasLicense) {
console.log('可以驾驶');
} else if (age >= 18) {
console.log('需要先考驾照');
} else {
console.log('未成年');
}
简写形式
JavaScript
// 单语句可省略大括号(不推荐)
if (score >= 60) console.log('及格');
// 三元运算符替代简单 if-else
let result = score >= 60 ? '及格' : '不及格';
// 多条件简化
let status = age < 13 ? '儿童' :
age < 20 ? '青少年' :
age < 60 ? '成年人' : '老年人';
常见模式
JavaScript
// 提前返回
function processUser(user) {
if (!user) {
return '无用户信息';
}
if (!user.name) {
return '用户名缺失';
}
return `用户:${user.name}`;
}
// 默认值处理
function greet(name) {
name = name || 'Guest';
console.log(`Hello, ${name}`);
}
// 范围判断
function getTimeOfDay(hour) {
if (hour < 6) return '凌晨';
if (hour < 12) return '上午';
if (hour < 14) return '中午';
if (hour < 18) return '下午';
if (hour < 22) return '晚上';
return '深夜';
}
注意事项
- 条件表达式会被转为布尔值判断
- 大括号可以省略但强烈不推荐,会导致代码可读性差
else if不是独立语句,而是else后跟if语句- 注意条件判断的顺序,避免条件重叠
JavaScript
// 不推荐的写法
if (x > 0)
console.log('正数');
console.log('这行总是会执行'); // 缩进误导,实际不在 if 内
// 推荐的写法
if (x > 0) {
console.log('正数');
}
// 条件重叠问题
let num = 85;
if (num >= 60) {
console.log('及格'); // 会执行这里
} else if (num >= 80) { // 这个分支永远不会到达
console.log('良好');
}
// 正确顺序应从大到小判断
要点总结
if语句根据条件真假决定执行路径else if用于多条件分支,else处理其他情况- 条件表达式会自动转为布尔值
- 推荐使用大括号包裹代码块,提高可读性
- 提前返回模式可简化嵌套 if
- 注意条件判断顺序,避免分支逻辑错误
📝 发现内容有误?点击此处直接编辑