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