36 lines
1.1 KiB
JavaScript
36 lines
1.1 KiB
JavaScript
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);
|
||
}
|
||
var lessonName = "变量";
|
||
let chapterName = "作用域";
|
||
const stage = "进阶";
|
||
console.log("块内:", lessonName);
|
||
// 任务:
|
||
// 1. 输出 lessonName
|
||
// 2. 不要直接在这里输出 chapterName,否则会报错
|
||
// 3. 用一句注释说明为什么
|
||
|
||
}
|
||
|
||
compareScope();
|
||
// 任务:
|
||
// 4. 试着重新给 const 声明的值赋值
|
||
// 5. 观察会发生什么
|
||
/*观察 `var` 声明前为什么能访问到 `undefined`
|
||
- 用 `var` 声明一个函数内部变量
|
||
- 用 `let` 声明一个代码块内部变量
|
||
- 在可访问的位置输出它们
|
||
- 观察为什么 `var` 在块外还能访问,而 `let` 不行
|
||
- 再写一段代码证明 `const` 不能被重新赋值*/ |