feat: Add JavaScript core exercises and solutions

- Implemented exercises for array high-order methods, memory and execution, switch statements, and final review.
- Added starter and answer files for each exercise to facilitate learning.
- Created a runner HTML file to execute JavaScript code and display console outputs.
- Updated README files to include exercise objectives, tasks, and usage instructions.
This commit is contained in:
charlie
2026-03-13 11:09:19 +08:00
parent 4495ae0e28
commit 877acb5a8f
51 changed files with 1949 additions and 5 deletions

View File

@@ -0,0 +1,30 @@
# 练习 11var、let、const 与提升
## 目标
理解 `var``let``const` 的基本区别,尤其是作用域和提升差异。
## 你要练什么
- `var`
- `let`
- `const`
- 变量提升
- 块级作用域
- 函数作用域
## 任务
请完成一个“作用域观察”脚本,要求:
- 观察 `var` 声明前为什么能访问到 `undefined`
-`var` 声明一个函数内部变量
-`let` 声明一个代码块内部变量
- 在可访问的位置输出它们
- 观察为什么 `var` 在块外还能访问,而 `let` 不行
- 再写一段代码证明 `const` 不能被重新赋值
## 文件
- [starter.js](/Users/lijiaqing/home/wwwroot/front-end-example/03-javascript-core/11-var-and-scope/starter.js)
- [answer.js](/Users/lijiaqing/home/wwwroot/front-end-example/03-javascript-core/11-var-and-scope/answer.js)

View File

@@ -0,0 +1,28 @@
console.log("var 声明前:", lessonType);
var lessonType = "JavaScript";
console.log("var 声明后:", lessonType);
// console.log("let 声明前:", chapterType);
// let 在声明前处于暂时性死区,直接访问会报错。
function compareScope() {
if (true) {
var lessonName = "变量";
let chapterName = "作用域";
const stage = "进阶";
console.log("块内:", lessonName, chapterName, stage);
}
console.log("块外仍能访问 var", lessonName);
// console.log(chapterName);
// chapterName 是 let 声明的块级作用域变量,离开 if 代码块后就不能访问。
}
compareScope();
const level = "核心阶段";
console.log("const 初始值:", level);
// level = "下一阶段";
// const 不能被重新赋值,否则会报错。

View File

@@ -0,0 +1,27 @@
console.log("var 声明前:", lessonType);
var lessonType = "JavaScript";
// 如果你取消下面两行注释,会报错,因为 let 在声明前不能访问。
// console.log("let 声明前:", chapterType);
// let chapterType = "作用域";
function compareScope() {
if (true) {
var lessonName = "变量";
let chapterName = "作用域";
const stage = "进阶";
console.log("块内:", lessonName, chapterName, stage);
}
// 任务:
// 1. 输出 lessonName
// 2. 不要直接在这里输出 chapterName否则会报错
// 3. 用一句注释说明为什么
}
compareScope();
// 任务:
// 4. 试着重新给 const 声明的值赋值
// 5. 观察会发生什么