web-dev-qa-db-ja.com

console.logに未定義と表示され、正しい値が表示されるのはなぜですか?

console.log("hi") gives 
undefined
hi

console.log(1+1) gives 
undefined
2

それが文字列計算であろうと整数計算であろうと、私は未定義で正しい答えを得る。

未定義のメッセージが表示されるのはなぜですか?それを避ける良い方法はありますか?

27
Michael Durrant

コンソールは、式の評価結果を出力します。 _console.log_は明示的に何かを返さないため、console.log()の評価結果はundefinedです。コンソールへの印刷という副作用があります。

多くの式で同じ動作を観察できます。

_> var x = 1;
undefined;
_

変数宣言は値を生成しないため、undefinedがコンソールに再度出力されます。

反例として、数学演算子を含む式は、undefinedの代わりにコンソールに出力される値を生成します:

_> 2 + 2;
4
_
22
James Allardice

undefinedは、console.log()の戻り値です。これはChrome JS Consoleの標準動作です

8
Adrian

コンソールには、入力の戻り値が表示されます。 console.log()は何も返さないため、未定義です。

コンソールに直接入力するだけで結果を取得できます

2
cooper667

console.log(...)の値を返します。

このような2つの関数を定義すると、その理由がわかります。

_function functionA() {
  return 1; 
}
function functionB() {
  return;
}
_

functionB()は未定義を返します。

enter image description here

2
Ali Gajani

これは、console.log()が値を返さない(つまり、未定義を返す)ためです。コンソールに入力した結果は最初にコンソールに出力され、その後少し後にconsole.logはコンソールに到達し、同様に印刷されます。

ブラウザが未定義を表示しない場合、コンソール入力がコンソールにのみ印刷されることに気づいたため、結果の表示をスキップします。

1
PurkkaKoodari