Curso gratuito de JavaScript. Regístrate para hacer un seguimiento de tu progreso →

JavaScript: Comillas

'Hola'
'Adiós'
'G'
' '
''

¿Cuáles de estas cinco opciones son cadenas de texto?

Con las primeras dos opciones está claro, son definitivamente cadenas de texto, ya hemos trabajado con construcciones similares y hemos dicho que las cadenas de texto son conjuntos de caracteres.

Cualquier carácter individual entre comillas es una cadena de texto. Una cadena de texto vacía '' también es una cadena de texto. Es decir, consideramos como cadena de texto todo lo que está dentro de comillas, incluso si es un espacio, un solo carácter o incluso la ausencia de caracteres.

Anteriormente, en las lecciones escribimos cadenas de texto entre comillas simples, pero esa no es la única forma. También se pueden usar comillas dobles:

// El estándar de codificación de airbnb recomienda
// usar comillas simples siempre que sea posible
console.log("¡Dracarys!");

Imagina que quieres imprimir la frase Dragon's Mother. El apóstrofe antes de la letra s es el mismo carácter que una comilla simple. Intentemos:

console.log('Dragon's Mother');
// Uncaught SyntaxError: missing ) after argument list

Este programa no funcionará. Desde el punto de vista de JavaScript, la cadena de texto comenzó con una comilla simple y luego terminó después de la letra n. Luego hubo caracteres s mother sin comillas, lo que significa que no es una cadena de texto. Y luego hubo una comilla de apertura de cadena que nunca se cerró: ');. Este código es sintácticamente incorrecto (se puede ver incluso por cómo se resalta el código).

Aquí es donde las comillas dobles nos ayudan. Esta versión del programa funcionará correctamente:

console.log("Dragon's Mother");

Ahora el intérprete sabe que la cadena de texto comenzó con una comilla doble, por lo que también debe terminar con una comilla doble. Y la comilla simple dentro se convirtió en parte de la cadena de texto.

Lo contrario también es cierto. Si queremos usar comillas dobles dentro de una cadena de texto, debemos hacer la cadena de texto con comillas simples. Y la cantidad de comillas dentro de la cadena de texto no importa.

¿Y si queremos crear una cadena de texto como esta?

Dragon's mother said "No"

En ella hay tanto comillas simples como comillas dobles. ¿Qué hacer en esta situación? De alguna manera tenemos que decirle al intérprete que cada comilla es parte de la cadena de texto y no el comienzo o el final de la cadena de texto.

Para esto se escapan los caracteres especiales. En nuestro caso, el carácter que indica el final y el comienzo de la cadena de texto es una comilla simple o una comilla doble, dependiendo de la situación. Para escapar se utiliza una barra invertida \.

// Solo se escapa ", ya que en esta situación
// las comillas dobles tienen un significado especial
console.log("Dragon's mother said \"No\"");
// => Dragon's mother said "No"

Mira atentamente: tuvimos que agregar \ para las comillas dobles, pero no para la comilla simple (apóstrofe), porque la cadena de texto en sí se creó con comillas dobles. Si la cadena de texto se hubiera creado con comillas simples, entonces se habría necesitado un carácter de escape antes del apóstrofe, pero no antes de las comillas dobles.

// \ no se muestra si después de él hay un carácter normal,
// no un carácter especial
console.log("Death is \so terribly final");
// => Death is so terribly final

¿Y si queremos imprimir la barra invertida en sí? De la misma manera que cualquier otro carácter especial, debemos escaparlo con el mismo carácter.

console.log("\\");
// => \

Pregunta de autoevaluación, ¿qué imprimirá este código?

console.log("\\ \\ \\\\ \\\ \'\"");
Respuesta Este código imprimirá la siguiente cadena de texto: `\ \ \\ \ '"`.

Tarea

Escribe un programa que imprima en la pantalla:

"La palabra favorita de Khal Drogo es "athjahakar""

El programa debe imprimir exactamente esa frase. Presta atención a las comillas al principio y al final de la frase:

"Khal Drogo's favorite word is "athjahakar""
¿El ejercicio no pasa la prueba, qué debo hacer? 😶

Si te quedaste atascado, es el momento perfecto para hacer una pregunta en las "Discusiones".
* Asegúrate de incluir la salida de las pruebas. Sin ella, es casi imposible entender qué está mal, incluso si muestras tu código. Los programadores tienen dificultades para ejecutar el código en su mente, pero casi siempre es posible entender a dónde mirar a partir del error que recibiste.

Mi código funciona en mi entorno, pero no aquí 🤨

Las pruebas están diseñadas de manera que verifican la solución de diferentes maneras y con diferentes datos. A menudo, una solución funciona con ciertos datos de entrada pero no con otros. Para entender este punto, revisa la pestaña "Pruebas" y presta atención a los mensajes de error, que suelen contener pistas.

Mi código es diferente a la solución del profesor 🤔

Esto es normal 🙆. En programación, una tarea puede tener muchas soluciones diferentes. Si tu código pasa la prueba, cumple con los requisitos de la tarea.

En raras ocasiones, la solución puede estar ajustada para pasar las pruebas, pero esto suele ser evidente.

Leí la lección, pero no entendí nada 🙄

Crear materiales de aprendizaje comprensibles para todos es bastante difícil. Hacemos nuestro mejor esfuerzo, pero siempre hay margen para mejorar. Si encuentras material que no entiendes, describe el problema en las "Discusiones". Es ideal si puedes formular los aspectos que no entiendes en forma de preguntas. Por lo general, necesitamos unos días para hacer mejoras.

Por cierto, tú también puedes contribuir a mejorar los cursos: en la parte inferior hay un enlace al código fuente de las lecciones, que se puede modificar directamente en el navegador.

Consejos útiles


¿Encontraste un error? ¿Quieres añadir algo? Las solicitudes de extracción son bienvenidas. https://codica.la/errores
Si te encuentras con dificultades y no sabes qué hacer, pregunta en nuestra gran y amigable comunidad