2011-12-10 7 views

答えて

24

だけ"hello world";を書いて、それはこのように何undefinedが表示されない、"hello world"代わりのundefinedを返します...エンターキーを押し。 console.logundefinedを返し、コンソールに引数を記録して複数のメッセージを取得します。

+0

ありがとうEsailija。私が何らかの機能や性格を入力していないとき。 「未定義」も表示されます。あなたは何がフードの下で起こっているのか説明してもらえますか? –

+0

@SandeepGB、入力がないとあなたは何を期待していますか? :P何かを入力しない戻り値は、ほとんど意味が「未定義」になります – Esailija

+2

何が起こっているのかを理解しようとしていました。 alessioalexは私の質問に答えました:) –

36

JavaScript関数は常に何かを返します。関数で何かを返すように指定しなければ、デフォルトで 'undefined'が返されます(Firebugでもこれをチェックできます)。

これは何も影響しませんが、無視しても問題ありません。

+0

+1。返信いただきありがとうございます。 「未定義」を取り除く方法はありますか?構文は何でしょうか? –

+0

プログラム(Webアプリケーションやコマンドライン)を作成しても、決して定義されていない「飛行」することはありませんので、心配しないでください。 – alessioalex

+0

私は関数や文字を入力しません。 「未定義」も表示されます。あなたは何がフードの下で起こっているのか説明してもらえますか? –

16

他の人に指摘されているように、戻り値を指定しないとjavascript関数は常にundefinedを返します。あなたはそれを無視することができます。それはどんな害も引き起こさないだろう。 しかしそれがあなたをあまりにも煩わしければ、replでそれをオフにすることができます。 ReplにはこのプロパティがありますignoreUndefinedこれはデフォルトでfalseに設定されています。これをtrueに設定することができます。これを試してみてください :あなたはモジュール内部からignoreUndefinedをオンにする必要がある場合は

module.exports.repl.ignoreUndefined = true; 
4

、自分でコンソールに入力しなくてもAvinashBの答えをシミュレートするために、次の行を使用することができます。

process.stdin.emit('data', "module.exports.repl.ignoreUndefined = true;\n"); 
5

まあ、数年前に質問がされましたが、ここで何が起きているのかを説明する別の方法があります。通常undefinedを返し、あなたがより良い戻り値を選択することができますconsole.log()言及した機能として

console.log("Hello World") || "Bye World"; 

は、次のコマンドを試してみてください。非厳密(抽象的な)比較はundefinedfalseと等しく、||演算子はその選択肢を許可します。

それだけでデバッグツールであることを考えると、これは一般的な使用では不要ですが、標準出力に送られテキストを表示してもいない場合は、コマンドとを表示返された値、または未定義の試用版とそのそのコンソールを理解するのに役立ちます値を受け取った。 はGENERALにおいては、各コマンドの戻り値を表示し、console.logは何も返さないため

+0

こんにちは@Melo、私はこのコードは、より良いconsole.log( "Hello World")に書き直すことができると思います|| "バイワールド"。 –

+1

フォーマットを追加してくれてありがとう@Vasfed。 –

+1

@DevidFarinelliを修正しました。ありがとうございます。 –

関連する問題