首页 > 解决方案 > 为什么控制台显示递增的数字?

问题描述

在这个小的 javascript 片段中,我做了一些基本的数学运算。

var num = 42;
var sum = function () {
    console.log("here is the number: " + num);
}

num = num + 1;

sum();

var num = 42;
num = num + 1;
var sum = function () {
    console.log("here is the number: " + num);
}

sum();

无论哪种情况,我在控制台中看到的输出都是 43。

我希望在第二个代码块中为 43,因为我在分配变量num 之前sum添加了 +1 。

由于我已经声明并分配了我的变量,我假设这里没有提升,并且所有内容都按显示的顺序执行。

我错过了什么?

标签: javascript

解决方案


您的 console.log 在您的 sum 函数中。

它仅在您调用该函数时执行,而不是在定义该函数时执行。

在这两种情况下,您都会在增加数字后调用 sum 函数。

要获得输出 42,您需要将 sum 函数移到增加数字的位置上方。

var num = 42;
var sum = function () {
    console.log("here is the number: " + num);
}

sum(); // => 42

num = num + 1;

sum(); // => 43

推荐阅读