目录
今日所学总结
一、表达式及返回值
- 表达式:由变量、数字、运算符共同组成,是 JavaScript 中进行数据运算和处理的基本单元。
- 返回值:每个表达式执行后都会产生一个返回值,该返回值可直接作为变量赋值的内容,例如
let a = 2 + 3中,2 + 3是表达式,其返回值5被赋给变量a。
二、运算符的分类
运算符用于对数据进行运算或逻辑判断,按功能可分为 6 类,不同运算符有各自规则和优先级。
1. 算术运算符
用于执行两个数或变量的算术运算,包含+(加)、-(减)、*(乘)、/(除)、%(取余)。
注意:浮点数(如0.1、0.2)尽量避免进行算术运算和对比,因二进制存储特性会导致精度损失(例如0.1 + 0.2 ≠ 0.3)。
2. 递增递减运算符
仅作用于单个变量,用于实现变量值 “+1” 或 “-1”,分前置和后置两种形式:
- 前置(++num /--num):先对变量进行增减操作,再使用变量的值(先加后用)。
- 后置(num++ /num--):先使用变量当前的值,再对变量进行增减操作(先用后加)。
注意:若仅单独使用(如num++或++num),两种形式效果相同,均等价于num = num + 1。
3. 比较运算符
对两个数据进行大小、相等性等比较,最终返回true(真)或false(假)的布尔值,包含:
| 运算符 | 功能 | 特点 |
|---|---|---|
< | 小于 | - |
> | 大于 | - |
<= | 小于等于 | - |
>= | 大于等于 | - |
== | 判断等于 | 会进行数据类型自动转换 |
!= | 判断不等于 | 会进行数据类型自动转换 |
=== | 全等于 | 严格比较,类型和值必须都相等 |
4. 逻辑运算符
对多个条件进行布尔值运算,也支持 “短路运算”(仅执行部分表达式,后续不执行),包含:
| 运算符 | 功能 | 短路运算规则 |
|---|---|---|
&& | 逻辑与 | 左边表达式为真,返回右边表达式;左边为假,返回左边表达式(一假则假) |
| ` | 逻辑或 | 左边表达式为真,返回左边表达式;左边为假,返回右边表达式(一真则真) |
! | 逻辑非 | 对布尔值取反(true变false,false变true),无短路特性 |
5. 赋值运算符
用于给变量赋值或更新变量值,包含:
| 运算符 | 功能说明 | 示例(以num = 5为例) |
|---|---|---|
= | 基础赋值:将右边值赋给左边变量 | num = 10 → num=10 |
+= | 加后赋值:变量先加右边值,再赋值 | num += 3 → num=8 |
-= | 减后赋值:变量先减右边值,再赋值 | num -= 2 → num=3 |
*= | 乘后赋值:变量先乘右边值,再赋值 | num *= 4 → num=20 |
/= | 除后赋值:变量先除右边值,再赋值 | num /= 5 → num=1 |
%= | 取余后赋值:变量先取余右边值,再赋值 | num %= 3 → num=2 |
6. 运算符优先级
决定多个运算符同时出现时的执行顺序,优先级从高到低如下:
- 小括号(
()):可强制改变运算顺序,优先级最高 - 一元运算符(
--、++、!):仅作用于单个数据的运算符 - 算术运算符:先执行
*、/、%,后执行+、- - 关系运算符(
>、<、>=、<=) - 相等运算符(
==、!=、===、!==) - 逻辑运算符:先执行
&&(逻辑与),后执行||(逻辑或) - 赋值运算符(
=、+=、-=等) - 逗号运算符
三、流程控制
1. 概念
通过特定语法控制代码的执行顺序,避免代码仅按 “从上到下” 的固定顺序执行,实现更灵活的逻辑。
2. 三种核心结构
- 顺序结构:默认执行方式,代码从第一行到最后一行依次执行,大部分基础代码采用此结构。
- 分支结构:根据条件判断结果,选择执行不同的代码块(如 “满足条件执行 A,不满足执行 B”)。
- 循环结构:在条件满足时,重复执行某段代码块,直到条件不满足时停止。
四、分支结构
分支结构用于 “根据不同条件执行不同代码”,主要有 3 种实现方式:
1. if 语句
适用于多分支且变量有范围的场景(如 “分数≥90 为优秀,80-89 为良好”),分 3 种形式:
- 单分支:仅在条件满足时执行代码,语法:
if (条件表达式) { 满足条件时执行的语句; } - 双分支:条件满足执行 A,不满足执行 B,语法:
if (条件表达式) { 满足条件执行的语句; } else { 不满足条件执行的语句; } - 多分支:处理 3 个及以上条件,语法:
if (条件表达式1) { 满足条件1执行的语句; } else if (条件表达式2) { 满足条件2执行的语句; } else if (条件表达式3) { 满足条件3执行的语句; } // ...可添加更多else if else { 所有条件都不满足时执行的语句; }
2. switch 语句
适用于多分支且条件为固定值的场景(如 “根据星期几执行不同操作”),语法:
switch (表达式) { // 表达式通常是变量
case value1: // 变量与value1全等时执行
执行语句1;
break; // 跳出switch,避免执行后续case
case value2: // 变量与value2全等时执行
执行语句2;
break;
// ...可添加更多case
default: // 所有case都不匹配时执行
执行语句;
}
注意事项:
- 变量与
case的value必须 “全等于”(===),即类型和值都一致。 - 每个
case后必须加break,否则会 “穿透” 到下一个case继续执行。 - 若用
prompt()获取用户输入,其返回值是字符串类型,需将case的value改为字符串,或把输入值转换为目标类型(如数字)。
3. 三元表达式
简化版的 “双分支判断”,语法简洁,仅适用于简单逻辑,语法:
条件表达式 ? 条件满足时执行的语句 : 条件不满足时执行的语句;
今日练习代码
练习题目

代码展示
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<script>
var homework = prompt('请输入要执行的作业:');
switch (homework) {
case '1':
// 1.判断时间阶段
var time1 = prompt('请输入时间:');
var time = Number(time1);
if (time >= 8 && time < 11) {
alert('早上好');
}
else if (time >= 11 && time < 13) {
alert('中午好');
}
else if (time >= 13 && time <= 17) {
alert('下午好');
}
else if (time > 17 && time < 23) {
alert('晚上好');
}
else {
alert('凌晨好');
}
break;
case '2':
//2.比较两个数的最大值
var num1 = prompt('请输入第一个值:');
var num2 = prompt('请输入第二个值:');
var max = Number(num1) >= Number(num2) ? num1 : num2;
alert(max);
break;
case '3':
// 3.判断奇偶数
var num = prompt('请输入一个数:');
var str = num % 2 == 0 ? num + '是偶数' : num + '是奇数';
alert(str);
break;
case '4':
// 4.返回周几
var week = prompt('请输入今天的星期:');
switch (week) {
case '1':
alert('今天是星期一');
break;
case '2':
alert('今天是星期二');
break;
case '3':
alert('今天是星期三');
break;
case '4':
alert('今天是星期四');
break;
case '5':
alert('今天是星期五');
break;
case '6':
alert('今天是星期六');
break;
default:
alert('今天是星期日');
}
break;
case '5':
// 5.班长请客
var money1 = prompt('请输入班长口袋的钱数:');
var money = Number(money1);
if (money >= 2000) {
alert('请大家吃西餐');
}
else if (money < 2000 && money >= 1500) {
alert('请大家吃快餐');
}
else if (money < 1500 && money >= 1000) {
alert('请大家喝饮料');
}
else if (money < 1000 && money >= 500) {
alert('请大家吃棒棒糖');
}
else {
alert('下次带够钱');
}
break;
case '6':
// 6.分数判定
var score1 = prompt('请输入用户的分数:');
var score = Number(score1);
if (score >= 90) {
alert('A');
}
else if (score >= 80 && score < 90) {
alert('B');
}
else if (score >= 70 && score < 80) {
alert('C');
}
else if (score >= 60 && score < 70) {
alert('D');
}
else {
alert('E');
}
break;
}
</script>
</head>
<body>
</body>
</html>

889

被折叠的 条评论
为什么被折叠?



