0

以下のコードを確認してください。

for(i=0; i-DIL; i++)//see the condition here i-DIL .Is this correct?
 { 


}

上記の for ループの 2 番目の条件は正しいですか?もしそうなら、それはどういう意味ですか?

実際のコードは次のとおりです。

 javascript:R=0;  
 x1=.1; y1=.05;
 x2=.25; y2=.24;
 x3=1.6; y3=.24;
 x4=300; y4=200;
 x5=300; y5=200;
 DI=document.getElementsByTagName("img");
 DIL=DI.length; 
 function A(){for(i=0; i-DIL; i++)//see the condition here i-DIL .Is this correct?
 { 
 DIS=DI[ i ].style;
 DIS.position='absolute';
 DIS.left=(Math.sin(R*x1+i*x2+x3)*x4+x5)+"px"; 
 DIS.top=(Math.cos(R*y1+i*y2+y3)*y4+y5)+"px"}

R++

}
 setInterval('A()',5); void(0);

また、スクリプトの最後に void(0) を配置する理由を説明してくれる人はいますか? そして、画像の位置が何度も繰り返し設定されていることがわかります。どうすればそれを克服できますか

4

3 に答える 3

4

それが「正しい」かどうかは、forループで何をしたいかによって異なります。ただし、これは有効なコードであり0、JavaScript では「偽」であり、他の数値は「真実」であるという事実に左右されます。

基本的に、iDILが等しい場合、i - DILと等しくなり、ループ条件0の目的でと評価され、反復が停止します。これがコレクションの長さであることを考えると、これは興味深い (ただし技術的には有効な) コレクション全体を反復処理する方法です。forfalseDIL

それは同等です(ただし、読みにくいと思いますが):

for(i=0; i < DIL; i++)
于 2013-02-11T09:16:35.370 に答える
2

まで以下のコードを実行することを意味しますi-DIL != 0。つまり、ここのコードでは、i到達するまで機能しますDIL

于 2013-02-11T09:14:04.643 に答える
1

通常、 for ループには次の処理が必要です。

for(variable definition; condition; increment) {}

ですから、条件が必要です。ただし、Javascripts にはルーズなコンテンツ タイプがあるため、比較を使用してtrueorにする必要はありませんfalse

10 - 1          // = 9 equals true
10 - 9          // = 1 equals true
10 - 10         // = 0 equals false

"legit string"  // equals true
NULL            // equals false

ただし、厄介なブラウザがあなたの状態を壊さないようにするためだけに、実際の比較を行うことをお勧めします.

for(var i = 0; i - DIL > 0; i++) {}
于 2013-02-11T09:16:22.633 に答える