¿Cómo puedo agregar una variable a console.log?


82

Estoy haciendo un juego simple en JavaScript, pero en la historia necesito que diga el nombre de los jugadores. entonces lo que tengo hasta ahora es:

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

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

¿Cómo hago la segunda línea? o hay otra forma en que podría hacer esto. ¿Es posible tener 2 console.log();en 1 línea en la consola?


¿Está buscando concatenar cadenas juntas? ¿Qué quieres decir con "hacer la segunda línea"?
cogsmos

^ cogsmos, no importa ahora, mi pregunta ha sido respondida
Bradley McInerney

Me alegro de que lo hayas descubierto. En JavaScript, el + se puede usar para aritmética y también para unir dos cadenas (también llamado concatenación). Eche un vistazo aquí para obtener más detalles: w3schools.com/js/js_operators.asp
cogsmos

Respuestas:


85

Luego usa +para combinar cadenas:

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

77

console.log toma múltiples argumentos, así que solo usa:

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

Si el nombre es un objecto un, arrayentonces usar múltiples argumentos es mejor que la concatenación. Si concatenas una objecto arrayen una cadena, simplemente registras el tipo en lugar del contenido de la variable.

Pero si el nombre es solo un tipo primitivo, entonces varios argumentos funcionan igual que la concatenación.


19
o tambiénconsole.log('story %s story',name);
Muhammad Umer

1
Algo menor, pero si estás en una configuración menos convencional como el código de nube de Parse, el envío de una matriz o el uso de% s no funciona ... entonces estás obligado a concatenar.
Derek Lucas

Eso es genial @MuhammadUmer, pensé que era solo una cosa de Python. En Python %ses el mejor método para concatenar cadenas, ya que no es necesario cambiar primero el tipo de variable. Me pregunto si es lo mismo en JS.
JasTonAChair

59

Puede utilizar otro método de consola:

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

4
Las cadenas de plantillas son impresionantes. Pero siempre que alguien use ES6. Dado que en el ejemplo se usa "var" (podría ser ES6 por supuesto) pero no creo que podamos asumir que aquí ...
therebelcoder

39

Hay varias formas de consolar la variable dentro de una cadena.

Método 1 :

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

Beneficio: si el nombre es un objeto JSON, no se imprimirá como "story" [object Object] "story"

Método 2:

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

Método 3: al usar ES6 como se mencionó anteriormente

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

Beneficio: Sin necesidad de extra, o +

Método 4:

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

Beneficio: la cadena se vuelve más legible.


@egemen ¿qué tiene que ver freemarker con eso? Es una plantilla literal de ECMAscript 2015
Nico Van Belle

1
Esta es la mejor respuesta.
Stephen Collins

19

Al usar ES6 también puede hacer esto:

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

Nota: Necesita usar comillas invertidas `en lugar de '' o '' para hacerlo así.


6

Puede pasar varios argumentos para registrar:

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

3

2

Depende de lo que quieras.

console.log("story "+name+" story") se concatenar las cadenas juntas e imprimir eso. Para mí, utilizo esto porque es más fácil ver lo que está sucediendo.

El uso console.log("story",name,"story")es similar a la concatenación, sin embargo, parece ejecutar algo como esto:

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

Esto es juntar todos los elementos de la matriz, separados por un espacio: .join(" ")


1

Ambos console.log("story" + name + "story")y console.log("story", name, "story")funcionan bien como se mencionó en respuestas anteriores.

Todavía sugeriré tener el hábito de console.log("story", name, "story"), porque, si intenta imprimir el contenido del objeto, como el objeto json, "story" + objectVariable + "story"lo convertirá en una cadena.

Esto tendrá una salida como: "story" [object Object] "story".

Solo una buena práctica.


Entonces, ¿por qué sugieres "," uno. Como solo imprimirá [objeto objeto]. Sobre todo, queremos una versión de cadena que obtendrá frmo "+". ¿Derecho?
P Satish Patro

0

También puede usar el estilo printf para formatear argumentos. Está disponible en al menos Chrome, Firefox / Firebug y node.js.

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

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

También es compatible con% d para formatear números.


-2

Puede usar la barra invertida para incluir tanto la historia como el nombre de los jugadores en una línea.

var name = prompt ("¿cuál es tu nombre?"); console.log ("historia" \ nombre \ "historia");

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.