Questions — Module 01: Introduction to JavaScript¶
Log questions as they arise — don't wait until you understand them fully. A question written down is a learning opportunity captured. For big-picture questions about the whole topic, use the topic-level QUESTIONS.md instead.
How to Use This File¶
- Write the question the moment it occurs to you, even if you can't articulate it well yet.
- Come back and refine the question once you understand it better.
- Update the status as you research or find answers.
- Link to the source where you found the answer.
- Capture follow-up questions — good answers always raise new ones.
Status Legend¶
| Symbol | Meaning |
|---|---|
| 🔴 | Unanswered — needs active research |
| 🟡 | Partial — have some understanding, still incomplete |
| 🟢 | Answered — well understood, could explain to someone else |
| ⏸ | Deferred — not urgent, revisit in a later module |
Question Format¶
### Q{{N}}: {{SHORT_QUESTION_TITLE}}
**Asked:** {{YYYY-MM-DD}}
**Status:** 🔴 Unanswered
**Full question:**
The complete question with all relevant context.
**My current hypothesis:**
What you think the answer might be, even if speculative.
**Answer:**
_To be filled in_
**Source / Confirmed by:**
_Where you found or verified the answer_
**Follow-up questions:**
- _New questions this answer raised_
Questions¶
Q001: Why does typeof null return "object" if null is a primitive?¶
Asked: 2026-06-09 Status: 🔴 Unanswered
Full question:
The module says typeof null === "object" is a "historic bug". But how did it happen?
Was it ever fixable? Why didn't they fix it in ES6 when they made so many other changes?
My current hypothesis: Maybe it had something to do with the original 10-day implementation? And maybe fixing it would break too many websites that accidentally rely on this behavior?
Answer: To be filled in
Source / Confirmed by: To be filled in
Follow-up questions: - Are there other similar "unfixable bugs" in JavaScript?
Q002: When should I use a function declaration versus a function expression versus an arrow function?¶
Asked: 2026-06-09 Status: 🔴 Unanswered
Full question:
The module shows three ways to write functions. In practice, which should I use?
The module says arrow functions don't have their own this — when does that matter?
My current hypothesis:
Arrow functions seem simpler for small callbacks. Function declarations seem better for named top-level functions because of hoisting. I don't understand the this difference yet.
Answer: To be filled in
Source / Confirmed by: To be filled in
Follow-up questions:
- How does this work differently in arrow functions vs regular functions?
- Is there a performance difference?
Q003: What exactly is the difference between null and undefined?¶
Asked: 2026-06-09 Status: 🔴 Unanswered
Full question:
Both null and undefined seem to mean "no value". When should I use one vs the other?
Why does JavaScript have both?
My current hypothesis:
undefined seems to be JavaScript's way of saying "this was never set". null seems to be the programmer's way of saying "I intentionally set this to nothing". But I'm not sure if this is right.
Answer: To be filled in
Source / Confirmed by: To be filled in
Follow-up questions:
- Why does typeof null === "object" but typeof undefined === "undefined"?
- What does a function return if it has no return statement?
Add new questions below this line. Keep them numbered sequentially.
Resolved Questions Archive¶
Move fully answered 🟢 questions here to keep the active list clean.
(none yet)
Question Stats¶
| Status | Count |
|---|---|
| 🔴 Unanswered | 3 |
| 🟡 Partial | 0 |
| 🟢 Answered | 0 |
| ⏸ Deferred | 0 |
| Total | 3 |