console.log("hi") gives
undefined
hi
console.log(1+1) gives
undefined
2
それが文字列計算であろうと整数計算であろうと、私は未定義で正しい答えを得る。
未定義のメッセージが表示されるのはなぜですか?それを避ける良い方法はありますか?
コンソールは、式の評価結果を出力します。 _console.log
_は明示的に何かを返さないため、console.log()
の評価結果はundefined
です。コンソールへの印刷という副作用があります。
多くの式で同じ動作を観察できます。
_> var x = 1;
undefined;
_
変数宣言は値を生成しないため、undefined
がコンソールに再度出力されます。
反例として、数学演算子を含む式は、undefined
の代わりにコンソールに出力される値を生成します:
_> 2 + 2;
4
_
undefined
は、console.log()
の戻り値です。これはChrome JS Consoleの標準動作です
コンソールには、入力の戻り値が表示されます。 console.log()は何も返さないため、未定義です。
コンソールに直接入力するだけで結果を取得できます
console.log(...)
の値を返します。
このような2つの関数を定義すると、その理由がわかります。
_function functionA() {
return 1;
}
function functionB() {
return;
}
_
functionB()
は未定義を返します。
これは、console.log()
が値を返さない(つまり、未定義を返す)ためです。コンソールに入力した結果は最初にコンソールに出力され、その後少し後にconsole.log
はコンソールに到達し、同様に印刷されます。
ブラウザが未定義を表示しない場合、コンソール入力がコンソールにのみ印刷されることに気づいたため、結果の表示をスキップします。