2016-05-16 3 views
1

私はCodecademyでJavaScriptを学習しています。 whileループを使用すると、以下のような出力がたくさんあります。ループ後の余分な出力

for (var i=0; i<5; i++){ 
     console.log("Dhanu identify problems and solve them"); 
} 

var loop = 0; 
while(loop<5){ 
    console.log("Do some more"); 
    loop++; 
} 

私はあなたが得る出力は、「ループ」変数の最後の既知の値をログに記録しているだけではconsole.logで4

enter image description here

+4

[Javascript whileループ戻り値](@stackoverflow.com/questions/35454291/javascript-while-loop-return-value)の可能な複製 –

+1

@ Reddyブラウザコンソールで実行してみてください。現れます。私はそれが返され、印刷された最後の割り当ての結果だと思います – chrki

+0

これは、Codecademy出力の問題かもしれません。他のコード行がない場合、これは間違いなく "4"を表示しません(このフィドルで見られるように - https://jsfiddle.net/w14r4psr/)。私はCodecademyフォーラムで質問することをお勧めします。 – WonderGrub

答えて

2

として最後の行では、不要な出力を取得しています:(ここではFirefoxで):

enter image description here

それは絶対にあなたのコードに関連していないと、あなたは、股関節を心配する必要はありませんt。

もう1つの答えで述べたように、デバッグコンソールを使用して最後の行の結果をログに記録します(おそらくデバッグを目的としているためです)。例えば

声明 "私は= 1" "1" に評価されます。

enter image description here

声明ながら "i = 1からVAR;"あなたのwhileループの最後の文ためということを見ている

enter image description here

+0

great&quick catch .. – Sinto

+2

'出力はconsole.logに記録されます'loop'変数の最後の既知の値: 'なぜ? –

+0

デバッグパネル(私は実際には徹底的にはわかりません)の内部実装のために、おそらく何らかの理由でevalに基づいています(私の編集された答えを参照) –

0

を:ので、あなたがそれらのステートメントにはevalを呼び出すことで同じ動作を観察することができ、「未定義」

をロギング、「未定義」と評価ループ++はループの現在の値を "返す"ものです。これは、このようなコンソールでコードを実行するだけの副作用です。コンソールは基本的にREPL(read-execute-print-loops)であるため、何か印刷する必要があります。あなたは、Webページ内のスクリプトとしてこれを実行した場合は、デベロッパーコンソールで、最後の値が出力されます返された文を書くとき、あなたは一例

var a; 

ため

... 4

+0

ありがとう。私はそれが私が心配するべきではないことを知っていた。しかし、何が起こっているかを知る必要がありました。 –

0

は表示されませんそれはコンソールにundefinedを表示します。

a = 10; 

コンソールに10を表示します。

a = 10; a = a + 5; 

コンソールに15が表示されます。

我々は任意の値または増減番号を割り当てるときに、単にそれがその動作を行った後の値を返します...ので

、上記または下記のコードで

var loop = 0; 
while(loop<5){ 
    console.log("Do some more"); 
    loop++; 
} 

最後にループ++は4です。

関連する問題