2013-05-17 4 views
46

Sto facendo un semplice gioco in JavaScript ma nella storia ho bisogno di dire il nome del giocatore. quindi quello che ho finora è:Come posso aggiungere una variabile a console.log?

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

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

come si fa la seconda linea? o c'è un altro modo per farlo. È possibile avere 2 console.log(); su 1 linea nella console?

+0

Stai solo cercando di concatenare stringhe insieme? Cosa intendi con "fai la seconda linea"? – cogsmos

+0

^cogsmos, non importa ora, la mia domanda è stata risolta –

+0

Felice che tu l'abbia capito. In JavaScript il + può essere usato per l'aritmetica e anche per unire due stringhe insieme (chiamato anche concatenazione). Dai un'occhiata qui per ulteriori dettagli: http://www.w3schools.com/js/js_operators.asp – cogsmos

risposta

48

Quindi utilizzare + per combinare stirngs:

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

Credo che in questa risposta mancano le virgolette di chiusura per il 2 ° piano – guribe94

51

console.log prende più argomenti, quindi basta usare:

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

Se nome è un object o un array quindi utilizzando più argomenti è meglio di concatenazione. Se si concatena uno object o array in una stringa, si registra semplicemente il tipo anziché il contenuto della variabile.

Ma se nome è solo un tipo primitivo, più argomenti funzionano come la concatenazione.

+12

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

+1

Cosa minore, ma se ti trovi in ​​un ambiente meno convenzionale come il codice Cloud di Parse, l'invio di un array o l'utilizzo di% s non funziona .. quindi sei costretto a concatenare. –

+0

È fantastico @MuhammadUmer, pensavo che fosse solo una cosa di Python. In Python '% s' è il metodo migliore per concatenare le stringhe, poiché non è necessario prima modificare il tipo di variabile. Mi chiedo se è lo stesso in JS? – JasTonAChair

6

È possibile passare più args al log:

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

Dipende da ciò che si desidera.

console.log("story "+name+" story") concatenate gli stringhe insieme e stampare quello. Per me, lo uso perché è più facile vedere cosa sta succedendo.

Utilizzando console.log("story",name,"story") è simile a concatenazione tuttavia, sembra per eseguire qualcosa di simile:

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

Questo sta spingendo tutti gli elementi dell'array insieme, separati da uno spazio: .join(" ")

21

È può usare un altro metodo di console:

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

Le stringhe di template sono fantastiche. Ma a condizione che qualcuno usi ES6. Dal momento che nell'esempio "var" viene utilizzato (potrebbe essere ES6 ofcourse) ma non pensiamo che possiamo supporre che qui ... – stevenvanc

1

Sia console.log("story" + name + "story") e console.log("story", name, "story") funziona bene come accennato nelle risposte precedenti.

Continuerò a suggerire di avere un'abitudine di console.log("story", name, "story"), perché, se si prova a stampare il contenuto dell'oggetto, come l'oggetto json, avere "story" + objectVariable + "story" lo convertirà in stringa.

Questo avrà un'uscita come: "story" [object Object] "story".

Solo una buona pratica.

10

Quando si utilizza ES6 si può anche fare questo:

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

Nota: È necessario utilizzare backticks `` al posto di "" o '' a fare in questo modo.

5

Esistono diversi modi per consolare la variabile all'interno di una stringa.

Metodo 1:

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

Vantaggio: se il nome è un oggetto JSON, non verrà stampato come "story" [object Object] "story"

Metodo 2:

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

Metodo 3: Usando ES6 come sopra menzionato

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

Vantaggio: Non c'è bisogno di più, o +

Metodo 4:

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

Vantaggio: la stringa diventa più leggibile.

+0

freemarker non supporta il terzo metodo. – egemen