JavaScript 基础进阶:分支、循环与数组实战总结

目录

[一、if 与 switch 的使用对比](#一、if 与 switch 的使用对比)

[1. 相同点](#1. 相同点)

[2. 不同点](#2. 不同点)

[3. 使用建议](#3. 使用建议)

[二、for 循环:最常用的循环结构](#二、for 循环:最常用的循环结构)

[1. 基本结构](#1. 基本结构)

[2. 循环的三要素](#2. 循环的三要素)

[3. break 与 continue](#3. break 与 continue)

[4. for vs while 怎么选?](#4. for vs while 怎么选?)

三、循环嵌套(重点)

执行规律:

[1. 示例:学习计划模拟](#1. 示例:学习计划模拟)

[2. 打印三角形](#2. 打印三角形)

[3. 九九乘法表(经典)](#3. 九九乘法表(经典))

四、数组:数据集合的核心结构

[1. 什么是数组?](#1. 什么是数组?)

[2. 数组索引(重点)](#2. 数组索引(重点))

[3. 修改数组](#3. 修改数组)

[4. 数组可以存什么?](#4. 数组可以存什么?)

[5. length 属性](#5. length 属性)

五、数组常用操作方法

[1. 添加元素](#1. 添加元素)

[2. 删除元素](#2. 删除元素)

[3. 任意位置操作(最强)](#3. 任意位置操作(最强))


一、if 与 switch 的使用对比

在多条件判断中,if...elseswitch...case 都可以实现"多选一"的逻辑,但它们适用的场景有所不同。

1. 相同点

  • 都可以实现多分支逻辑
  • 在很多情况下可以互相替代

2. 不同点

|------|---------------|-----------------------|
| 对比点 | if...else | switch |
| 适用场景 | 范围判断(如 >、<) | 固定值匹配 |
| 执行方式 | 逐个判断条件 | 直接定位匹配值 |
| 性能 | 条件多时较慢 | 分支多时更高效 |
| 注意点 | 无特殊限制 | 必须使用 ===,注意 break |

3. 使用建议

  • 条件是范围判断 → 用 if...else
  • 条件是固定值匹配 → 用 switch
  • 分支少 → if 更简单
  • 分支多 → switch 更清晰

二、for 循环:最常用的循环结构

循环的本质是:让代码重复执行

1. 基本结构

javascript 复制代码
for (起始值; 终止条件; 变化量) {
  // 执行代码
}

例如输出 1~6 的标题:

javascript 复制代码
for (let i = 1; i <= 6; i++) {
  document.write(`<h${i}>标题</h${i}>`)
}

2. 循环的三要素

  • 起始值(从哪里开始)
  • 终止条件(什么时候结束)
  • 变化量(每次怎么变)

👉 三者缺一不可,否则容易出现死循环


3. break 与 continue

javascript 复制代码
// continue:跳过本次
for (let i = 1; i <= 5; i++) {
  if (i === 3) continue
  console.log(i)
}

// break:终止整个循环
for (let i = 1; i <= 5; i++) {
  if (i === 3) break
  console.log(i)
}

4. for vs while 怎么选?

  • 明确循环次数 → 用 for
  • 不确定循环次数 → 用 while

👉 实际开发中,for 使用频率更高


三、循环嵌套(重点)

嵌套循环可以理解为:循环里面再套一层循环

执行规律:

👉 外层执行一次,内层执行一整轮


1. 示例:学习计划模拟

复制代码
for (let i = 1; i < 4; i++) {
  console.log(`第${i}天`)
  for (let j = 1; j < 6; j++) {
    console.log(`第${j}个单词`)
  }
}

2. 打印三角形

复制代码
for (let i = 1; i <= 5; i++) {
  for (let j = 1; j <= i; j++) {
    document.write('★')
  }
  document.write('<br>')
}

3. 九九乘法表(经典)

复制代码
for (let i = 1; i <= 9; i++) {
  for (let j = 1; j <= i; j++) {
    document.write(`${j} x ${i} = ${j * i}`)
  }
  document.write('<br>')
}

👉 这是前端面试非常高频的基础题


四、数组:数据集合的核心结构

1. 什么是数组?

数组是一种按顺序存储多个数据的结构

复制代码
let names = ['小明', '小红', '小刚']

2. 数组索引(重点)

  • 索引从 0 开始

  • 访问方式:

    names[0] // 小明
    names[1] // 小红


3. 修改数组

复制代码
names[1] = '小丽'

4. 数组可以存什么?

👉 任意类型都可以

复制代码
let arr = [
  '字符串',
  123,
  true,
  { name: '对象' }
]

5. length 属性

复制代码
let arr = ['a', 'b', 'c']
console.log(arr.length) // 3

👉 用于获取数组长度(非常重要)


五、数组常用操作方法

这些方法都会直接修改原数组

1. 添加元素

复制代码
arr.push('新元素')     // 末尾添加
arr.unshift('新元素')  // 头部添加

2. 删除元素

复制代码
arr.pop()    // 删除最后一个
arr.shift()  // 删除第一个

3. 任意位置操作(最强)

复制代码
arr.splice(开始索引, 删除个数)

例如:

复制代码
arr.splice(2, 1) // 删除第3个元素
相关推荐
yong99904 小时前
IHAOAVOA:天鹰优化算法与非洲秃鹫优化算法的混合算法(Matlab实现)
开发语言·算法·matlab
t***5444 小时前
有哪些常见的架构设计模式在现代C++中应用
开发语言·c++
人间打气筒(Ada)5 小时前
「码动四季·开源同行」python语言:用户交互
开发语言·python·基本数据类型·注释·变量·常量·文件头
kaikaile19955 小时前
C# 文件编码转换工具
开发语言·c#
沐雪轻挽萤6 小时前
10. C++17新特性-保证的拷贝消除 (Guaranteed Copy Elision / RVO)
开发语言·c++
河阿里6 小时前
Java-JWT令牌技术深度指南
java·开发语言
文静小土豆6 小时前
Java 应用上 K8s 全指南:从部署到治理的生产级实践
java·开发语言·kubernetes
张元清6 小时前
Pareto 动态路由实战:[slug]、catch-all、嵌套布局
前端·javascript·面试