三件套之一:变量
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')体验异步。