JavaScript 函数提升和变量声明顺序示例
JavaScript 函数提升和变量声明顺序示例
以下代码展示了 JavaScript 中函数提升和变量声明顺序对代码执行结果的影响:
alert(a);
a();
var a = 3;
function a() {
alert(10);
};
alert(a);
a = 6;
a();
执行结果:
10
解释:
-
函数提升: 在 JavaScript 中,函数声明会被提升到代码执行的最前面。 因此,
function a() { ... }会被提升到代码的最前面,即使它出现在代码中其他语句之后。 -
变量提升: 同样,
var a = 3的变量声明也会被提升到代码的最前面,但只提升声明,不提升赋值。 因此,在代码执行到第一行alert(a);时,a已经声明了,但还未被赋值。 -
全局作用域: 由于
a是一个全局变量,因此在alert(a);和a();的执行过程中,a指向的是全局作用域中的函数function a() { ... }, 而不是var a = 3中的变量。 -
函数执行:
a();执行的是function a() { alert(10); },因此输出10。 -
变量赋值: 在执行
var a = 3;之后,全局变量a被赋值为3。 -
再次执行: 在执行
alert(a);时,a现在指向的是变量3,因此输出3。 -
重新赋值: 最后,
a = 6;将全局变量a的值重新赋值为6。
结论:
JavaScript 的函数提升和变量提升特性会影响代码的执行顺序。 在编写代码时,了解这些特性可以帮助我们更好地理解代码的行为。
原文地址: https://www.cveoy.top/t/topic/qi9j 著作权归作者所有。请勿转载和采集!