JavaScript 中的提升与作用域详解
1. 提升(Hoisting)
提升是 JavaScript 中一个重要但容易让人混淆的概念。在 JavaScript 里,变量和函数的声明会被“提升”到当前作用域的顶部,这意味着我们可以在声明之前访问它们。不过,不同类型的声明提升方式有所不同。
- 函数声明提升 :函数声明会被完整提升,所以我们可以在函数声明之前调用函数。例如:
fnInsideBlockVar();
function fnInsideBlockVar() {
console.log('Function inside block var');
}
这里即使 fnInsideBlockVar 函数的调用在声明之前,代码也能正常运行。
- 类声明提升 :类声明也会被提升,但和函数声明不同,在声明之前无法访问类。例如:
let Car = "Honda";
if (true) {
console.log(typeof Car); // error
class Car {}
}
上述代码会抛出错误,这证明了类声明确实被提升了。如果类声明没有被提升, console.log(typeof Car) 应该输出
超级会员免费看
订阅专栏 解锁全文
1115

被折叠的 条评论
为什么被折叠?



