最近、Windows 7マシンにnode.jsをインストールしました。
JavaScriptの実行時に、式の正常な実行とともにndefinedメッセージが表示されます。
ここで何が問題なのですか?私は他の副作用に気づいていません。
書くだけ "hello world";
を押してEnterキーを押します... "hello world"
はundefined
の代わりに、したがってundefined
は表示されません。 console.log
はundefined
を返し、コンソールに引数を記録するため、複数のメッセージを取得できます。
JavaScript関数は常に何かを返します。関数で返すものを指定しない場合、デフォルトで「undefined」が返されます(これはFirebugでも確認できます)。
心配しないでください、これは何にも影響しません、あなたはそれを無視することができます。
他の人が指摘したように、戻り値を指定しない場合、javascript関数は常にundefinedを返します。無視しても構いません。害を及ぼすことはありません。しかし、それがあまりにも面倒な場合は、replでオフにすることができます。 ReplにはこのプロパティignoreUndefinedがあり、デフォルトではfalseに設定されています。 trueに設定できます。これを試して:
module.exports.repl.ignoreUndefined = true;
質問は数年前に行われましたが、ここで何が起こっているのかを説明する別の方法がまだあります。
次のコマンドを試してください:
_console.log("Hello World") || "Bye World";
_
前述のように、関数console.log()
は通常undefined
を返すため、より適切な戻り値を選択できます。非厳密(抽象)比較ではundefined
がfalse
と等しいと見なされるため、_||
_演算子を使用するとその選択が可能になります。
これは単なるデバッグツールであることを考慮すると、これは一般的な使用では不要ですが、コンソールdisplaysテキストがstdoutに送信され、コマンドとdisplaysが返されることを理解するのに役立ちます値、または値が受信されなかった場合は未定義。
モジュール内からignoreUndefined
をオンにする必要がある場合、次の行を使用して、自分でコンソールに入力せずに AvinashB の答えをシミュレートできます。
process.stdin.emit('data', "module.exports.repl.ignoreUndefined = true;\n");
node
はundefined
も出力します。これはIN GENERALであるため、各コマンドの戻り値とconsole.log
は何も返しません。
これは、console.logがこの問題を解決するための(null/undefined)戻り値型を持っているために発生しています。文字列を返す関数があります。
const addNotes= function(msg)
{
return msg;
}
console.log(addNotes('say hello'));