2017-03-18 5 views
0
function a(){ 
    i = 0; 
} 
for(i = 0; i < 5; i++){ 
    a(); 
    document.write(i); 
} 

を繰り返す、なぜ私はそれが反復 '0'と期待されるか分かりません。しかし、私のウェブブラウザには何も表示されません。それはちょうどループに閉じ込められてしまいます。Javascriptを:それは0

+0

[ask]をお読みください。 –

+0

デバッガでコードをステップバイステップで実行します。それを行う方法がわからない場合は、https://developer.chrome.com/devtoolsなどのサイトから始めて、あなたがやっていることをすべて削除して今すぐ学びましょう。それを読んだ後でも、それを使う方法やコードをデバッグする方法を見つけられない場合は、別の作業ラインを見つけることをお勧めします。ちなみに、** iterate '0' **はどういう意味ですか?あなたは '' 0 ''を繰り返すことはできません。範囲を超えて**を**反復することができます。言葉の意味も含め、正確ではないプログラマーになることは非常に難しいでしょう。 –

+0

'i'のような変数を' var'(あるいは 'ES2015、' let'や 'const')で宣言せずに使うと暗黙のグローバルになります。これはグローバルなので、ループで参照される 'i'と' a() 'で参照される' i'は同じ変数です。これは、 'a'が呼び出されるたびに' i'がゼロに戻されるたびに、 'i ++'が' i'を1つ増やしても、その直後に常にゼロにリセットされることを意味します。そのため、 'i'は決して' 6'に到達せず、あなたは無限ループに陥ります。 –

答えて

0

をハングします。

function a(){ 
     console.log("inside a(): "+i); 
     i = 0; 
    } 
    for(i = 0; i < 5; i++){ 
     a(); 
     console.log("inside for():"+i); 
    } 

ここでconsole.log()は、DOMで印刷する代わりにブラウザのコンソールに結果を出力します。 あなたが学んだことを理解するのが簡単な方法です。 Infinite Loop in Javascript

+0

本当にありがとう!! –

1

a()が再度呼び出され、iが0になるたびに何も表示されないので、繰り返しループします。

は、コードを実行しないでください、あなたがより多くの機能を学ぶことができるので、あなたは、同じスニペットを符号化するさまざまな方法を初心者しようとしているので、それ以外のブラウザは

function a(){ 
 
    i = 0; 
 
    } 
 
    for(i = 0; i < 5; i++){ 
 
     a(); 
 
    console.log(i); 
 
    }

+0

私はOPコードを実行するたびにブラウザタブがハングしてタブを閉じる必要があります –

+0

はい、ハングします。それは無限にループしているので、 'console.log()'やそれ以外のものはありません –

関連する問題