深学 DeepLearn纯静态学习平台 · 借鉴 DeepTutor

2. JavaScript 核心三件套:变量、函数与异步

const 与 let、箭头函数、数组方法,以及理解 JS 灵魂的异步编程。

约 10 分钟3 道测验 6 张抽认卡

三件套之一:变量

const name = '深学'      // 不可重新赋值
let count = 0            // 可以重新赋值
count = count + 1

优先用 const,只有确实需要重新赋值时才用 let——这是现代 JS 的默认习惯。

三件套之二:函数与数组方法

// 箭头函数
const double = (x) => x * 2

// map:一一变换,返回新数组
const scores = [80, 92, 75]
const doubled = scores.map((s) => s * 2)      // [160, 184, 150]

// filter:按条件筛选
const passed = scores.filter((s) => s >= 80)  // [80, 92]

// reduce:汇总成一个值
const total = scores.reduce((sum, s) => sum + s, 0)  // 247

map、filter、reduce 是函数式编程三件宝,React 里天天见。

三件套之三:异步

网页最常见异步操作是网络请求:

async function loadStats() {
  try {
    const res = await fetch('/api/stats')   // 等待响应
    const data = await res.json()           // 等待解析 JSON
    console.log('学习人数:', data.learners)
  } catch (err) {
    console.error('请求失败:', err)
  }
}

await 只在 async 函数里可用。它「等待」时并不卡死页面——底层是事件循环在调度:主线程继续干别的,结果到了再回来执行后续代码。

为什么异步如此重要

JS 是单线程语言,同一时刻只能做一件事。如果 fetch 像 C 语言一样死等,页面就会冻结。事件循环 + Promise 让单线程也能高效处理成百上千个并发请求,这是理解 Node.js 与浏览器行为的地基。

💡 动手建议:打开浏览器控制台(F12),直接输入 await fetch('https://api.github.com/zen') 体验异步。

✍️章节测验(3 题)

选好后点击提交,成绩会记录到数据库,帮你追踪掌握情况。

  1. 1. 用 const 声明的对象 obj,下面哪种操作会报错?

  2. 2. [1, 2, 3].map(x => x * 2) 的返回值是?

  3. 3. await 关键字的作用是?

进度加载中…