本地还是全球?

时间:2012-12-26 06:53:12

标签: javascript

我有很多这样的函数,我不知道我应该将j和k作为局部变量还是会出现异常问题?

var j=10,k=20;
var i=j+k*2;
console.log('helloworld'+i);
function plus(j,k){
 var i=j+k;
 console.log('plus '+i);
 //...etc
}

function formular(j,k){
 var i=j*k+123;
 console.log('formular '+i);
 //...etc
}
plus(-10,-20);
setInerval(function(){formular(22,33)},1000);
setInerval(function(){plus(-102,-33)},1000);

或者我应该写像

function(var j, var k){ }

...

2 个答案:

答案 0 :(得分:0)

这是非常糟糕的做法。全局变量应该在javascript中谨慎使用。使用与全局变量相同的名称命名函数参数会更糟,并且会很快混淆。

不,你不应该写作     函数(var r,var k)

尽可能尝试使用局部变量,并且不要因为命名全局变量而命名它们而让自己迷惑。

答案 1 :(得分:0)

var j=10,k=20;
var i=j+k*2;
console.log('helloworld'+i);

此处,ijk都是全局的(假设您的代码位于全局范围内);

function plus(j,k){
 var i=j+k;
 console.log('plus '+i);
 //...etc
}

此处jki是本地的,因为jk在功能参数列表和i中定义在函数内定义。

以上两者不会发生冲突;试试这个:fiddle demo。按任意顺序按两个按钮。

但是,我并不是说你的代码是一种很好的做法。请注意,应谨慎使用全局变量