JavaScript运算符与流程控制详细教程
JavaScript运算符与流程控制详细教程
在JS(JavaScript)中只有数据的程序是静止的。我们需要对数据进行计算、比较,并根据结果决定程序下一步该做什么。这就是运算符和流程控制的用武之地。它们为程序注入了逻辑和决策能力。
1. 运算符
运算符允许我们对值进行操作。
算术运算符
执行数学计算。
let a = 10;
let b = 3;
console.log(a + b); // 加法,输出 13
console.log(a - b); // 减法,输出 7
console.log(a * b); // 乘法,输出 30
console.log(a / b); // 除法,输出 3.333...
console.log(a % b); // 取模(求余数),输出 1 (10除以3余1)
赋值运算符
为变量赋值。
let x = 10; // 简单赋值
x += 5; // 等同于 x = x + 5; 现在 x 是 15
x -= 2; // 等同于 x = x - 2; 现在 x 是 13
x *= 3; // 等同于 x = x * 3; 现在 x 是 39
比较运算符
比较两个值,并返回一个布尔值(true或 false)。
console.log(10 > 5); // 大于,输出 true
console.log(10 < 5); // 小于,输出 false
console.log(10 >= 10); // 大于等于,输出 true
console.log(5 <= 4); // 小于等于,输出 false
// 特别注意:相等性比较
console.log(10 == "10"); // 相等(只比较值,会进行类型转换),输出 true
console.log(10 === "10"); // 严格相等(比较值和类型),输出 false
console.log(10 != "10"); // 不相等,输出 false
console.log(10 !== "10"); // 严格不相等,输出 true
最佳实践:为了避免不可预料的类型转换错误,请始终使用 ===和 !==。
逻辑运算符
用于组合多个布尔条件。
let isAdult = true;
let hasLicense = false;
// && (逻辑与):两边都为 true,结果才为 true
console.log(isAdult && hasLicense); // 输出:false
// || (逻辑或):至少一边为 true,结果就为 true
console.log(isAdult || hasLicense); // 输出:true
// ! (逻辑非):取反
console.log(!isAdult); // 输出:false
2. 流程控制:条件语句
根据条件是否成立,执行不同的代码分支。
if…else 语句
这是最基础的条件判断。
let hour = 14; // 下午2点
if (hour < 12) {
console.log("Good morning!");
} else {
console.log("Good afternoon!");
}
// 输出:Good afternoon!
else if
处理多个条件。
let score = 85;
if (score >= 90) {
console.log("成绩优秀!");
} else if (score >= 75) {
console.log("成绩良好!");
} else if (score >= 60) {
console.log("成绩及格!");
} else {
console.log("成绩不及格!");
}
// 输出:成绩良好!
三元运算符
是 if...else的简洁写法。
// 语法:condition ? exprIfTrue : exprIfFalse
let age = 20;
let canVote = (age >= 18) ? "可以投票" : "不能投票";
console.log(canVote); // 输出:可以投票
switch 语句
当一个变量需要与多个特定值进行比较时,switch比多个 else if更清晰。
let day = "Wednesday";
let dayType;
switch (day) {
case "Monday":
case "Tuesday":
case "Wednesday":
case "Thursday":
case "Friday":
dayType = "工作日";
break; // break 关键字用于跳出switch,防止继续执行下一个case
case "Saturday":
case "Sunday":
dayType = "周末";
break;
default: // 如果都不匹配,则执行default
dayType = "无效的日期";
}
console.log(dayType); // 输出:工作日
3. 实战练习
编写一个程序,判断一个年份是否是闰年。
闰年规则:
- 年份能被4整除,但不能被100整除;或者
- 年份能被400整除。
let year = 2024;
if ((year % 4 === 0 && year % 100 !== 0) || year % 400 === 0) {
console.log(year + "年是闰年。");
} else {
console.log(year + "年不是闰年。");
}
// 输出:2024年是闰年。
总结
运算符让我们能够处理和比较数据,而条件语句则让程序(JavaScript)具备了根据判断结果执行不同路径的能力。这使得程序不再是线性的,而是变得“智能”。