logo

JavaScript let/const 作用域

✏️ Editable
Loading...
Live Preview
+Enter Run+R Reset

About This Exercise

这关专门解决新手常见困惑:为什么同一个变量名在不同位置会“看起来不一样”?

let 有块级作用域,const 表示这个引用不再重新赋值。

你不需要一次记住所有规则,先通过 3 个小函数建立直觉。

Beginner⏱ 15-20 min

Learning Objectives

  • 理解块级作用域
  • 用 const 表达不变引用
  • 避免 var 带来的问题

Scenario

你在维护用户列表逻辑,旧代码大量使用 var,容易出现作用域和重名 bug。 目标是改写为更安全、更可维护的 ES6 变量声明方式。

Why Do This

  • Frontend JS is not just about knowing the syntax — the key is reliably manipulating the DOM and managing interaction state.
  • Break down the event flow (trigger -> handle -> update UI) before coding, and you will make significantly fewer errors.
  • Rule-based validation helps you develop a testable frontend mindset.

Hands-on Practice

  • Write out the event flow in comments first, then implement the functions.
  • Add an edge case branch for invalid input or empty data.
  • Explain why each validation rule is needed.

Common Mistakes

  • Only testing the happy path without verifying edge inputs or repeated clicks.
  • Mixing event binding and state updates together, making future maintenance difficult.
  • Console output looks correct but the UI is not actually updated.

Deliverable

A reusable interaction component scaffold (event flow description + key functions + edge case handling).

My Progress

Completed Steps0 / 3
Total Attempts0
Best Score0%

Completion Criteria (Checkable)

Confirm before completing this Lab

Reflection Questions (Recommended)

Describe the event flow of this Lab in 2-3 sentences (trigger -> handle -> update).

What edge case did you add? Why is it easy to miss?

How confident are you with this interaction pattern now?

Tags

JavaScriptES6letconstScope