JavaScript 中的函数和变量在被声明之前就可以被访问的特性称为“提升”。
声明函数的作用提升:
在 JavaScript 中,函数声明会被提升到当前作用域的顶部。这意味着可以在函数声明之前调用该函数,而不会引发错误。
hello(); // 可以在函数声明之前调用
function hello() {
console.log("Hello!");
}
声明变量的提升与声明函数的提升的区别:
-
声明变量的提升:
使用var
声明的变量也会被提升,但只会提升变量的声明,不会提升赋值。console.log(x); // undefined var x = 5;
上面的代码中,
var x;
会被提升,但赋值操作并没有提升,所以console.log(x);
输出undefined
。 -
声明函数的提升:
函数声明会被完整地提升,包括函数体,因此可以在声明之前调用该函数。hello(); // 可以在函数声明之前调用 function hello() { console.log("Hello!"); }
在函数声明中,整个函数体被提升,包括函数内部的逻辑。
总结:函数声明会被完整地提升到当前作用域的顶部,而变量声明会提升但不会初始化赋值。这是函数声明和变量声明提升的区别。
Was this helpful?
0 / 0