0

このような関数をたくさん持っているのですが、j と ka をローカル変数にすればいいのかわからないのですが、何か異常が発生するのでしょうか?

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){ }

??

4

2 に答える 2

0

これは本当に悪い習慣です。グローバル変数は、javascript では控えめに使用する必要があります。グローバルと同じ名前で関数の引数に名前を付けると、さらに悪化し、すぐに混乱します。

いいえ、 function(var r,var k) と書くべきではありません

可能な限りローカル変数を使用してみてください。グローバルに名前を付けるのと同じ方法で名前を付けて混乱しないでください。

于 2012-12-26T06:59:08.730 に答える
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
}

ここでjkと もiローカルです。これは、jkが関数パラメーター リストで定義され、関数i内で定義されているためです。

上記の 2 つは競合しません。これを試してください: fiddle demo。任意の順序で 2 つのボタンを押します。

ただし、あなたのコードが良い習慣であると言っているわけではありません。グローバル変数は注意して使用する必要があることに注意してください。

于 2012-12-26T08:40:45.187 に答える