2013-01-31 6 views
41

console.logが実行されるたびに、undefinedという行が出力ログに追加されます。Chrome/Firefoxのconsole.logには、常に未定義の行が追加されます

WindowsとLinuxのFirefoxとChromeの両方で発生します。

+5

だからあなたの質問は何ですか?これを生成するコード例をいくつか表示できますか?あなたが期待している行動は何ですか? – kapa

+0

それはおそらくあなたの問題を解決するのに十分な情報ではありません –

+1

私はそれが実際にいくつかの情報が欠けていても私のベストショットを与えました:) – talkol

答えて

58

JSファイルからconsole.log()を実行している場合は、このundefined行を追加しないでください。

console.log()をコンソールから実行している場合は意味があります。これが理由です:コンソールに変数の名前を入力することができます(例えば、windowと入力してみてください)、それに関する情報が表示されます。コンソールからvoid関数(console.logなど)を実行すると、戻り値の情報(この場合はundefined)も出力されます。

Chrome(Mac版23.0.1271.101)で両方のケースをテストしましたが、実際にコンソール内で実行するとundefinedという行が表示されます。私は、コンソールに次の行を記述するとき、これはundefinedも表示されます:var bla = "sdfdfs"

+0

返信ありがとうございます。コンソール自体から実行していますが、すべての拡張機能を停止しようとしましたが、同じ結果が得られます。 –

+0

これは予想される動作です。すべてが必要なように働いています。拡張機能を有効にすることができます:) JSファイルからconsole.logを実行するだけで、これは表示されません。コンソールからconsole.logを実行しているのはなぜですか? console.log – talkol

+0

を使わずに変数名を入力することはできますが、以前はそうではありませんでした。 –

27

talkol's答えはOKですが、私はもっとまっすぐにそれを入れてみてください:

ではJavaScriptをタイプすることを意味し、動的言語として設計されています(string、void、boolean ...)は、関数の戻り値の事前定義されていません。関数がreturn文または空のreturn文を使用しない場合、JavaScriptはundefinedを自動的に返します。つまり、JavaScriptではすべての関数が何かを返しますが、少なくとも未定義です。

したがって、Chromeコンソールのconsole.log()ファンクションは、この関数の戻り値が定義されないように、返されないか、空のreturn文を使用します。この関数の戻り値は、Chromeコンソールにも表示されます。

[Google Chromeのソースコード内のconsole.log()関数の定義を検索する場所を誰かが知っていれば、いいだろう、我々はさらに行くと実際のコードを見ることができ、リンクにコメントしてください。]

出典:

+0

他の投稿の参照は問題ありませんが、これは完全ではありませんそれはあなたが参照している答えに対するコメントとしてはうまく収まるでしょう。 – Dan

+3

私はそれをやろうとしましたが、十分な評判がないためにコメントすることができません(「コメントするには50の評判が必要です」)ので、コメントの代わりに「最適ではない」方法を使用して投稿しない。 –

+0

それは公正です。私はあなたの投稿を編集せずに私のdownvoteを削除することはできません。答えの中のそのリンクに何があるのか​​を精緻化していますか?あなたがそれを行うことができれば、私は私の投票を変更することができます:) – Dan

-2

あなたはを使用している場合ここでハック代替だ、単一の行に複数の値を放出する:

var1 + ' ' + var2 + ' ' + var... 

(より良いアイデアは歓迎し、これは特定の状況で爆破かもしれません)

関連する問題