JavaScript 可选链与空值合并
✏️ Editable
Loading...
Live Preview
⌘+Enter Run⌘+R Reset
About This Exercise
很多新手第一次接接口数据会遇到报错:
Cannot read properties of undefined
这通常是因为某层字段不存在。
本关两把“安全钥匙”:
?.:中途断了就返回undefined,不报错??:当值是null/undefined时给默认值
Beginner⏱ 20-25 min
Learning Objectives
- 掌握 ?. 的安全访问语法
- 掌握 ?? 的默认值兜底语法
- 能写出对缺失字段更稳健的展示逻辑
Scenario
你要渲染用户资料卡,但后端字段经常不完整:
有的人没有昵称,有的人没有城市。
你要让页面“不报错、可显示、可兜底”。
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
JavaScriptES6+Optional ChainingNullish