来自 MDN,只是想知道为什么函数周围有 (),为什么后面有额外的 (),以及为什么函数内的 var b 不替换第一个 var b 的值,因为它不使用关键字 let,这将使 b 保持在该函数的本地,谢谢
var a = 1;
var b = 2;
(function() {
var b = 3;
a += b;
})();
a; // 4
b; // 2
最佳答案
当您在函数内编写 var b 时,var 关键字使其成为局部变量。因此,函数内部的 var b 是局部变量,而函数外部顶部的 var b 则处于全局范围内。您可以在 MDN 中阅读有关范围界定的更多信息。另外,函数后面的 () 称为立即函数调用,这意味着该函数在定义后立即被调用。另外,由于函数内部的 a 在其声明之前没有 var,因此它将采用全局 a(即 1)并添加 3(局部变量 b 的值)。
关于javascript - 基本的 JavaScript 函数语法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38522876/