JavaScript 中的函数和变量在被声明之前就可以被访问的特性称为“提升”。

声明函数的作用提升:

在 JavaScript 中,函数声明会被提升到当前作用域的顶部。这意味着可以在函数声明之前调用该函数,而不会引发错误。

hello(); // 可以在函数声明之前调用

function hello() {
  console.log("Hello!");
}

声明变量的提升与声明函数的提升的区别:

  1. 声明变量的提升:
    使用 var 声明的变量也会被提升,但只会提升变量的声明,不会提升赋值。

    console.log(x); // undefined
    var x = 5;
    

    上面的代码中,var x; 会被提升,但赋值操作并没有提升,所以 console.log(x); 输出 undefined

  2. 声明函数的提升:
    函数声明会被完整地提升,包括函数体,因此可以在声明之前调用该函数。

    hello(); // 可以在函数声明之前调用
    
    function hello() {
      console.log("Hello!");
    }
    

    在函数声明中,整个函数体被提升,包括函数内部的逻辑。

总结:函数声明会被完整地提升到当前作用域的顶部,而变量声明会提升但不会初始化赋值。这是函数声明和变量声明提升的区别。

Was this helpful?

0 / 0

发表回复 0

Your email address will not be published.