第3课:运算符与流程控制——JS的“决策者”

一切美好都值得你全力以赴。即使过程艰难,但只要坚持,必有回响。加油!

欢迎来到「JavaScript 魔法学院」第 3 课!今天我们将化身代码世界的"指挥官",用运算符 计算数据,用流程控制 做出决策!文末实战带你用9 行代码生成九九乘法表,绝对震撼!

一、运算符:JS 的"计算器"

1. 算术运算符

js 复制代码
console.log(10 + 3 * 2);   // 16(注意优先级!)
console.log(10 % 3);       // 1(取余数)
console.log(2 ** 4);       // 16(指数运算)

优先级口诀:先乘除后加减,括号优先最保险!

2. 比较运算符

符号 含义 示例 结果
== 值相等 "5" == 5
=== 严格相等 "5" === 5
大于 10 > "8"

避坑指南:

  • 优先用 === 避免隐式类型转换
  • NaN === NaN 的结果是 false(特殊记忆!)

3. 逻辑运算符

js 复制代码
// &&(与):两个条件都为真
if (age > 18 && hasLicense) { /* 允许驾驶 */ }

// ||(或):任意条件为真
if (isRainy || isSnowy) { /* 带伞 */ }

// !(非):取反
console.log(!true);  // false

二、流程控制:代码的"红绿灯"

1. 条件分支:if/else

js 复制代码
// 基本结构
const score = 85;
if (score >= 90) {
  console.log("A");
} else if (score >= 60) {
  console.log("B");
} else {
  console.log("C");
}

2. 开关语句:switch

js 复制代码
// 适合多条件精确匹配
const fruit = "苹果";
switch (fruit) {
  case "香蕉":
    console.log("黄色");
    break;  // 必须break!
  case "苹果":
    console.log("红色");
    break;
  default:
    console.log("未知水果");
}

3. 循环结构

for 循环

js 复制代码
// 打印1-5
for (let i = 1; i <= 5; i++) {
  console.log(i);
}

如果把 for 循环里面的 let 变成 const,打印结果会一样吗?为什么?

js 复制代码
for (const i = 1; i <= 5; i++) {
  console.log(i);
}

while 循环

js 复制代码
// 适合未知循环次数
let count = 3;
while (count > 0) {
  console.log(`剩余次数:${count}`);
  count--;
}

do...while 循环

js 复制代码
// 适合未知循环次数
let num = 3;
do {
console.log(`剩余次数:${num}`);
num--;
} while (num > 0);

循环控制

  • break:立刻终止整个循环

  • continue:跳过本次循环,继续下一次

三、实战:9 行代码生成九九乘法表

1. 完整代码

js 复制代码
for (let i = 1; i <= 9; i++) {       // 外层控制行数
  let line = "";
  for (let j = 1; j <= i; j++) {     // 内层控制每行公式
    line += `${j}x${i}=${i*j}\t`;    // \t 制表符对齐
  }
  console.log(line);
}

1. 效果演示

3. 代码解析

  • 双重循环:外层遍历行数,内层遍历每行公式

  • 字符串拼接:用模板字符串动态生成公式

  • 转义字符:\t 实现控制台输出对齐

4.高颜值九九乘法表

下节预告

第 4 课:函数基础------JS 的"魔法咒语"

  • 如何封装可复用的代码块?

  • 箭头函数 vs 普通函数

  • 实战:开发"随机抽奖器"!

关注公众号,回复【JS】获取本课源码+工具包!

相关推荐
matlab_xiaowang3 小时前
Redux 入门:JavaScript 可预测状态管理库
开发语言·javascript·其他·ecmascript
前端摸鱼匠5 小时前
Vue 3 的v-bind合并行为:讲解v-bind与普通属性合并的规则
前端·javascript·vue.js·前端框架·ecmascript
REDcker5 小时前
浏览器端Web程序性能分析与优化实战 DevTools指标与工程清单
开发语言·前端·javascript·vue·ecmascript·php·js
Linsk7 小时前
Java和JavaScript的关系真是雷峰和雷峰塔的关系吗?
java·javascript·oracle
当时只道寻常7 小时前
浏览器文本复制到剪贴板:企业级最佳实践
javascript
许彰午7 小时前
我手写了一个 Java 内存数据库(二):B+ 树的插入与分裂
java·开发语言·面试
Alice-YUE8 小时前
【js高频八股】防抖与节流
开发语言·前端·javascript·笔记·学习·ecmascript
是上好佳佳佳呀9 小时前
【前端(十一)】JavaScript 语法基础笔记(多语言对比)
前端·javascript·笔记
莎士比亚的文学花园10 小时前
Linux驱动开发(3)——设备树
开发语言·javascript·ecmascript
01漫游者10 小时前
JavaScript函数与对象增强知识
开发语言·javascript·ecmascript