JavaScript 函数提升和变量声明顺序示例

以下代码展示了 JavaScript 中函数提升和变量声明顺序对代码执行结果的影响:

alert(a);
 a();
 var a = 3;
 function a() {
  alert(10);
 };
 alert(a);
 a = 6;
 a();

执行结果:

10

解释:

  1. 函数提升: 在 JavaScript 中,函数声明会被提升到代码执行的最前面。 因此,function a() { ... } 会被提升到代码的最前面,即使它出现在代码中其他语句之后。

  2. 变量提升: 同样,var a = 3 的变量声明也会被提升到代码的最前面,但只提升声明,不提升赋值。 因此,在代码执行到第一行 alert(a); 时,a 已经声明了,但还未被赋值。

  3. 全局作用域: 由于 a 是一个全局变量,因此在 alert(a);a(); 的执行过程中,a 指向的是全局作用域中的函数 function a() { ... }, 而不是 var a = 3 中的变量。

  4. 函数执行: a(); 执行的是 function a() { alert(10); },因此输出 10

  5. 变量赋值: 在执行 var a = 3; 之后,全局变量 a 被赋值为 3

  6. 再次执行: 在执行 alert(a); 时,a 现在指向的是变量 3,因此输出 3

  7. 重新赋值: 最后,a = 6; 将全局变量 a 的值重新赋值为 6

结论:

JavaScript 的函数提升和变量提升特性会影响代码的执行顺序。 在编写代码时,了解这些特性可以帮助我们更好地理解代码的行为。

JavaScript 函数提升和变量声明顺序示例

原文地址: https://www.cveoy.top/t/topic/qi9j 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录