2017-07-19 8 views
0

私はJavaScriptコンソールChromeの開発ツールに次のコードを実行していますが、私は次のような出力を得る なぜこのコードは最後に `undefined`を出力しますか?

var solution = 1; 
for(var i = 1; i <= 12; ++i) 
    solution *= i; 
console.log(solution.toString()); 

:私は最後の行を削除すると

479001600 
undefined 

、つまりconsole.log(solution.toString());を、Iただ479001600を取得します。何が起こるのですか?

console.log(solution.toString()); 

は、それ自体が、(それが値を出力しますが、1を返しません)値を返しません:

+0

の長さを返すようそれが次の行に1が表示されます

var a=[];a.push(5); 

を試してみてください....これに欺瞞がなければならない。 – epascarello

+2

コンソールは、入力したものの最後に返された値を記録します。 'console.log'は' 'undefined'を返します。それがなければ、最後の 'solution * = i'が記録され、あなたが望む結果が示されます。 –

+0

@NiettheDarkAbsolそれはまさにそのケースです。ご協力いただきありがとうございます。 –

答えて

5

undefinedは単に文のことを伝えるのコンソールの方法です。開発者のコ​​ンソールに固有の動作であるため、実際のコードが実行されるときに心配することではありません。

別の例として、コンソールには11と表示されます。コンソールは常に、実行したステートメントから返された値を報告する必要があるため、コンソールに11と表示されます。

1

Google Chromeのコンソールは、最後に実行された文の値を常に返します。

コンソールで、あなたの最後の文は、それは未定義 "示した任意の値を返しませんでした

console.log() 

1だったので。

は、pushメソッドは、実行コードは何も返さないためで新たに形成された配列

関連する問題