Ich mache ein einfaches Spiel in JavaScript, aber in der Geschichte muss es den Namen des Spielers enthalten. Was ich bisher habe, ist:
var name = prompt("what is your name?");
console.log("story" name "story);
Wie mache ich die zweite Zeile? oder es gibt einen anderen Weg, wie ich das tun könnte. Ist es möglich, 2 console.log();
in 1 Zeile in der Konsole zu haben?
javascript
console.log
Bradley McInerney
quelle
quelle
Antworten:
Verwenden Sie dann
+
, um Zeichenfolgen zu kombinieren:console.log("story " + name + " story");
quelle
console.log
nimmt mehrere Argumente an, also benutze einfach:console.log("story", name, "story");
Wenn der Name ein
object
oder ein ist,array
ist die Verwendung mehrerer Argumente besser als die Verkettung. Wenn Sie eineobject
oderarray
eine Zeichenfolge verketten, protokollieren Sie einfach den Typ und nicht den Inhalt der Variablen.Wenn der Name jedoch nur ein primitiver Typ ist, funktionieren mehrere Argumente genauso wie die Verkettung.
quelle
console.log('story %s story',name);
%s
ist dies die beste Methode zum Verketten von Zeichenfolgen, da Sie den Variablentyp nicht zuerst ändern müssen. Ich frage mich, ob es in JS dasselbe ist.Sie können eine andere Konsolenmethode verwenden:
let name = prompt("what is your name?"); console.log(`story ${name} story`);
quelle
Es gibt verschiedene Möglichkeiten, die Variable innerhalb einer Zeichenfolge zu trösten.
Methode 1 :
console.log("story", name, "story");
Vorteil: Wenn der Name ein JSON-Objekt ist, wird er nicht als gedruckt
"story" [object Object] "story"
Methode 2:
console.log("story " + name + " story");
Methode 3: Bei Verwendung von ES6 wie oben erwähnt
console.log(`story ${name} story`);
Vorteil: Keine zusätzliche Notwendigkeit oder +
Methode 4:
console.log('story %s story',name);
Vorteil: Die Zeichenfolge wird besser lesbar.
quelle
Bei Verwendung von ES6 können Sie außerdem Folgendes tun:
var name = prompt("what is your name?"); console.log(`story ${name} story`);
Hinweis: Sie müssen Backticks `` anstelle von "" oder '' verwenden, um dies so zu tun.
quelle
Sie können mehrere Argumente an das Protokoll übergeben:
console.log("story", name, "story");
quelle
%j
funktioniert nur für Node.js.%j
konvertiert einen Wert in eine JSON-Zeichenfolge und fügt ihn ein.console.log('%j new messages for', 7, 'john') // 7 new messages for john
Weitere String-Ersetzungen hier:
Docs:
quelle
Es kommt darauf an, was Sie wollen.
console.log("story "+name+" story")
wird verketten die Fäden zusammen und drucken das. Für mich benutze ich das, weil es einfacher ist zu sehen, was los ist.Die Verwendung
console.log("story",name,"story")
ähnelt der Verkettung, scheint jedoch ungefähr so zu laufen:var text = ["story", name, "story"]; console.log(text.join(" "));
Dadurch werden alle Elemente im Array zusammengeschoben, getrennt durch ein Leerzeichen:
.join(" ")
quelle
Beides
console.log("story" + name + "story")
undconsole.log("story", name, "story")
funktioniert einwandfrei, wie in früheren Antworten erwähnt.Ich werde immer noch vorschlagen, die Gewohnheit zu haben
console.log("story", name, "story")
, denn wenn Sie versuchen, den Objektinhalt wie json object zu drucken,"story" + objectVariable + "story"
wird er in einen String konvertiert.Dies hat folgende Ausgabe :
"story" [object Object] "story"
.Nur eine gute Übung.
quelle
Sie können auch den Formatierungsstil printf verwenden, um Argumente zu formatieren. Es ist mindestens in Chrome, Firefox / Firebug und node.js verfügbar.
var name = prompt("what is your name?"); console.log("story %s story", name);
Es unterstützt auch% d zum Formatieren von Zahlen
quelle
Sie können den Backslash verwenden, um sowohl die Story als auch den Namen des Spielers in eine Zeile aufzunehmen.
var name = prompt ("Wie heißt du?"); console.log ("Geschichte" \ Name \ "Geschichte");
quelle