javascript - 为什么控制台显示递增的数字?
问题描述
在这个小的 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 。
由于我已经声明并分配了我的变量,我假设这里没有提升,并且所有内容都按显示的顺序执行。
我错过了什么?
解决方案
您的 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
推荐阅读
- javascript - 检测登录凭据是否保存在 Chrome 扩展程序中的浏览器中
- database - Codeigniter:计算平均值并显示在视图中
- c - C 堆栈实现。关于解引用和双指针的问题
- postgresql - 从 postgresql 获得的对象的 Unmarshal Json Array
- python - 带字符串输出的递归计数
- java - 使用 void 函数更新数组,但该数组为空
- sparql - AllegroGraph SPARQL:从默认图和命名图中删除
- vba - 宏到颜色摘要任务是 90% 工作,无法弄清楚为什么它不是 100% 工作
- java - 如何创建 JTextField 数组并从 String 数组中检索文本?
- python - 将 Python 2.7 升级到 3.7 并为 SOAP 调用实现 zeep