console.logに変数を追加するにはどうすればよいですか?


82

私はJavaScriptで簡単なゲームを作っていますが、ストーリーではプレイヤーの名前を言う必要があります。だから私がこれまでに持っているのは:

var name = prompt("what is your name?");

console.log("story" name "story);

2行目を行うにはどうすればよいですか?または私がこれを行うことができる別の方法があります。console.log();コンソールに2対1の行を含めることは可能ですか?


文字列を連結することだけを考えていますか?「2行目をする」とはどういう意味ですか?
cogsmos 2013年

^ cogsmos、今は関係ありません、私の質問に答えました
Bradley McInerney 2013年

あなたがそれを理解してくれてうれしいです。JavaScriptでは、+は算術演算と、2つの文字列の結合(連結とも呼ばれます)に使用できます。詳細については、こちらをご覧ください:w3schools.com/js/js_operators.asp
cogsmos

回答:


87

次に、を使用+して文字列を結合します。

console.log("story " + name + " story");

77

console.log 複数の引数を取るので、次を使用してください。

console.log("story", name, "story");

名前がまたはのobject場合、array複数の引数を使用する方が連結よりも優れています。objectまたはarrayを文字列に連結する場合は、変数の内容ではなく、単に型をログに記録します。

ただし、名前が単なるプリミティブ型の場合、複数の引数は連結と同じように機能します。


19
またはconsole.log('story %s story',name);
Muhammad Umer 2014

1
些細なことですが、Parseのクラウドコードのようなあまり一般的でない設定では、配列を送信したり、%sを使用したりすることはできません。そのため、連結する必要があります。
デレクルーカス

それは素晴らしい@MuhammadUmerです、私はそれがPythonのものだけだと思いました。Python%sでは、最初に変数の型を変更する必要がないため、文字列を連結するための最良の方法です。JSでも同じかしら?
JasTonAChair 2015

61

別のコンソール方法を使用できます。

let name = prompt("what is your name?");
console.log(`story ${name} story`);

4
テンプレート文字列は素晴らしいです。ただし、誰かがES6を使用している場合。例では「var」が使用されているので(もちろんES6である可能性があります)、ここでそれを想定できるとは思わないので...
therebelcoder 2017年

39

文字列内の変数を解決する方法はいくつかあります。

方法1:

console.log("story", name, "story");

利点:名前がJSONオブジェクトの場合、次のように出力されません "story" [object Object] "story"

方法2:

console.log("story " + name + " story");

方法3:上記のようにES6を使用する場合

console.log(`story ${name} story`);

利点:余分な、または+の必要はありません

方法4:

console.log('story %s story',name);

利点:文字列が読みやすくなります。


@egemen freemarkerはそれと何の関係がありますか?これはECMAscript2015テンプレートリテラルです
Nico

1
これが最良の答えです。
スティーブンコリンズ

19

ES6を使用する場合は、次のこともできます。

var name = prompt("what is your name?");
console.log(`story ${name} story`);

注:このようにするには、「」または「」の代わりに「バッククォート」を使用する必要があります。



3

2

それはあなたが望むものに依存します。

console.log("story "+name+" story")文字列 を連結して出力します。私にとっては、何が起こっているのかがわかりやすいので、これを使用します。

使用console.log("story",name,"story")は連結に似ていますが、次のように実行されるようです。

 var text = ["story", name, "story"];
 console.log(text.join(" "));

これにより、配列内のすべてのアイテムがスペースで区切られて一緒にプッシュされます。 .join(" ")


1

どちらconsole.log("story" + name + "story")console.log("story", name, "story")それ以前の回答で述べたようにうまく動作します。

console.log("story", name, "story")jsonオブジェクトのようにオブジェクトの内容を印刷しよう"story" + objectVariable + "story"とすると、文字列に変換されるため、の習慣を身に付けることをお勧めします。

これは次のような出力になります:"story" [object Object] "story"

ちょうど良い習慣です。


では、なぜ「、」を提案しているのですか。[オブジェクトオブジェクト]を出力するだけなので。ほとんどの場合、frmo "+"を取得する文字列バージョンが必要です。正しい?
P SatishPatro19年

0

printfスタイルのフォーマット引数を使用することもできます。少なくともChrome、Firefox / Firebug、node.jsで利用できます。

var name = prompt("what is your name?");

console.log("story %s story", name);

また、数値の書式設定に%dをサポートします


-2

バックスラッシュを使用して、ストーリーとプレーヤー名の両方を1行に含めることができます。

var name = prompt( "あなたの名前は何ですか?"); console.log( "story" \ name \ "story");

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.