前端学习日志-day16

目录

今日所学总结

一、表达式及返回值

二、运算符的分类

1. 算术运算符

2. 递增递减运算符

3. 比较运算符

4. 逻辑运算符

5. 赋值运算符

6. 运算符优先级

三、流程控制

1. 概念

2. 三种核心结构

四、分支结构

1. if 语句

2. switch 语句

3. 三元表达式

今日练习代码

练习题目

代码展示

今日所学总结

一、表达式及返回值

  1. 表达式:由变量、数字、运算符共同组成,是 JavaScript 中进行数据运算和处理的基本单元。
  2. 返回值:每个表达式执行后都会产生一个返回值,该返回值可直接作为变量赋值的内容,例如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. 逻辑运算符

对多个条件进行布尔值运算,也支持 “短路运算”(仅执行部分表达式,后续不执行),包含:

运算符功能短路运算规则
&&逻辑与左边表达式为真,返回右边表达式;左边为假,返回左边表达式(一假则假)
`逻辑或左边表达式为真,返回左边表达式;左边为假,返回右边表达式(一真则真)
!逻辑非对布尔值取反(truefalsefalsetrue),无短路特性

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. 一元运算符(--、++、!):仅作用于单个数据的运算符
  3. 算术运算符:先执行*、/、%,后执行+、-
  4. 关系运算符(>、<、>=、<=
  5. 相等运算符(==、!=、===、!==
  6. 逻辑运算符:先执行&&(逻辑与),后执行||(逻辑或)
  7. 赋值运算符(=、+=、-=等)
  8. 逗号运算符

三、流程控制

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都不匹配时执行
    执行语句;
}

注意事项

  • 变量与casevalue必须 “全等于”(===),即类型和值都一致。
  • 每个case后必须加break,否则会 “穿透” 到下一个case继续执行。
  • 若用prompt()获取用户输入,其返回值是字符串类型,需将casevalue改为字符串,或把输入值转换为目标类型(如数字)。

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>

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值