我写了下面的代码,输出平方迭代数的总和:
(function () {
var i = 4, sum = 0;
while(i--) sum+=i*i;
})();
console.log(sum);
Run Code Online (Sandbox Code Playgroud)
问题是我在控制台中得到以下错误:sum是未定义的,除非我拿出总和并将其声明为全局范围://这可行,但这不是我想要的.
sum = 0;
(function ( ) {
var i=4
while(i--) sum+=i*i;
})();
console.log(sum);
Run Code Online (Sandbox Code Playgroud)
有人可以帮我理解吗?谢谢
var sum = (function ( ) {
var i=4, sum = 0;
while(i--) sum+=i*i;
return sum;
})();
console.log(sum);
Run Code Online (Sandbox Code Playgroud)
您创建了一个名为的局部变量,sum并希望在其范围之外使用它.您不希望在更高的范围内声明它,因此您必须将其导出.
导出本地(原始)变量的唯一方法是return语句.