我有很多这样的函数,我不知道我应该将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){ }
...
答案 0 :(得分:0)
这是非常糟糕的做法。全局变量应该在javascript中谨慎使用。使用与全局变量相同的名称命名函数参数会更糟,并且会很快混淆。
不,你不应该写作 函数(var r,var k)尽可能尝试使用局部变量,并且不要因为命名全局变量而命名它们而让自己迷惑。
答案 1 :(得分:0)
var j=10,k=20;
var i=j+k*2;
console.log('helloworld'+i);
此处,i
,j
和k
都是全局的(假设您的代码位于全局范围内);
function plus(j,k){
var i=j+k;
console.log('plus '+i);
//...etc
}
此处j
,k
和i
是本地的,因为j
和k
在功能参数列表和i
中定义在函数内定义。
以上两者不会发生冲突;试试这个:fiddle demo。按任意顺序按两个按钮。
但是,我并不是说你的代码是一种很好的做法。请注意,应谨慎使用全局变量。