--- title: Manejar texto — cadenas en JavaScript slug: Learn/JavaScript/First_steps/Strings tags: - Artículo - Cadenas - Comillas - Guía - JavaScript - Novato - Principiante - Union - Unir - concatenación - 'l10n:priority' - strings translation_of: Learn/JavaScript/First_steps/Strings ---
{{LearnSidebar}}
A continuación, centraremos nuestra atención en las cadenas de caracteres (string
s): así es como se llaman los fragmentos de texto en programación. En este artículo veremos todas las cosas comunes que realmente deberías saber sobre cadenas de caracteres al aprender JavaScript, como crear cadenas, comillas en cadenas y unir cadenas.
Prerequisitos: | Conocimientos básicos de informática, una comprensión básica de HTML y CSS y de lo que es JavaScript. |
---|---|
Objectivo: | Familiarizarte con los aspectos básicos de las cadenas de caracteres en JavaScript. |
Las palabras son muy importantes para los humanos — son una parte fundamental de nuestra comunicación. Dado que la Web es un medio en gran parte basado en texto diseñado para permitir a los humanos comunicarse y compartir información, es útil para nosotros tener control sobre las palabras que aparecen en él. {{glossary("HTML")}} proporciona estructura y significado a nuestro texto, {{glossary("CSS")}} nos permite personalizarlo con precisión, y JavaScript contiene una serie de funciones para manipular cadenas, crear mensajes personalizados de bienvenida, mostrar las etiquetas de texto adecuadas cuando sea necesario, organizar los términos en el orden deseado y mucho más.
Casi todos los programas que hemos mostrado hasta ahora en el curso han involucrado alguna manipulación de cadenas.
A primera vista, las cadenas se tratan de forma similar a los números, pero cuando profundizas empiezas a ver diferencias notables. Comencemos ingresando algunas líneas de texto básicas en la consola para familiarizarnos. Te proveeremos de una aquí abajo (también puedes abrir la consola en una pestaña o ventana separada, o usar la consola de desarrollo del navegador si así lo prefieres).
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>Consola JavaScript</title> <style> * { box-sizing: border-box; } html { background-color: #0C323D; color: #809089; font-family: monospace; } body { max-width: 700px; } p { margin: 0; width: 1%; padding: 0 1%; font-size: 16px; line-height: 1.5; float: left; } .input p { margin-right: 1%; } .output p { width: 100%; } .input input { width: 96%; float: left; border: none; font-size: 16px; line-height: 1.5; font-family: monospace; padding: 0; background: #0C323D; color: #809089; } div { clear: both; } </style> </head> <body> </body> <script> var geval = eval; function createInput() { var inputDiv = document.createElement('div'); var inputPara = document.createElement('p'); var inputForm = document.createElement('input'); inputDiv.setAttribute('class','input'); inputPara.textContent = '>'; inputDiv.appendChild(inputPara); inputDiv.appendChild(inputForm); document.body.appendChild(inputDiv); if(document.querySelectorAll('div').length > 1) { inputForm.focus(); } inputForm.addEventListener('change', executeCode); } function executeCode(e) { try { var result = geval(e.target.value); } catch(e) { var result = 'error — ' + e.message; } var outputDiv = document.createElement('div'); var outputPara = document.createElement('p'); outputDiv.setAttribute('class','output'); outputPara.textContent = 'Resultado: ' + result; outputDiv.appendChild(outputPara); document.body.appendChild(outputDiv); e.target.disabled = true; e.target.parentNode.style.opacity = '0.5'; createInput() } createInput(); </script> </html>
{{ EmbedLiveSample('Hidden_code', '100%', 300, "", "", "hide-codepen-jsfiddle") }}
var string = 'La revolución no será televisada.'; string;Al igual que con los números, declaramos una variable, iniciandola con el valor de una cadena, y luego retornamos dicho valor. La única diferencia es que al escribir una cadena, necesitas envolverla con comillas.
var malString = Esto es una prueba; var malString = 'Esto es una prueba; var malString = Esto es una prueba';Estas líneas no funcionan porque el texto sin comillas alrededor es tomado como nombre de una variable, propiedad, palabra reservada, o algo similar. Si el navegador no las encuentra, entonces se recibe un error( ej. "missing ; before statement"). Si el navegador puede ver dónde comienza una cadena, pero no dónde termine, como se indica en la segunda oración, devuelve error (con "unterminated string literal"). Si tu programa devuelve estos errores, revisa desde el inicio que todas tus cadenas posean sus comillas.
string
— inténtalo:
var maltring = string; malString;
malString
ahora tiene el mismo valor que string
.var simp = 'Comillas simples.'; var dobl = "Comillas dobles."; simp; dobl;
var badQuotes = 'What on earth?";
var sglDbl = 'Would you eat a "fish supper"?'; var dblSgl = "I'm feeling blue."; sglDbl; dblSgl;
var bigmouth = 'I've got no right to take my place...';Lo que nos lleva directamente al siguiente tema.
Para solucionar nuestro problema anterior, necesitamos "escapar" el asunto de las comillas. Escapar caracteres significa que les hacemos algo para asegurarnos que sean reconocidos como texto, y no parte del código. En JavaScript, colocamos una barra invertida justo antes del caracter. Intenta ésto:
var bigmouth = 'I\'ve got no right to take my place...'; bigmouth;
Ahora funciona correctamente. Puedes escapar otros caracteres de la misma forma, ej. \"
, y hay varios códigos más. Ve a Notación de Escape para más detalles.
var one = 'Hello, '; var two = 'how are you?'; var joined = one + two; joined;El resultado de este código es una variable llamada
joined
, que contiene el valor: "Hello, how are you?" ("Hola, cómo estas?").+
entre ellas. Prueba esto:
var multiple = one + one + one + one + two; multiple;
var response = one + 'I am fine — ' + two; response;
Nota: Cuando ingresas una string real en tu código, entre comillas simples o dobles, se llama string literal.
Vamos a revisar la concatenación que usamos en la siguiente acción — veamos este ejemplo ya citado previamente en el curso:
<button>Press me</button>
var button = document.querySelector('button'); button.onclick = function() { var name = prompt('What is your name?'); alert('Hello ' + name + ', nice to see you!'); }
{{ EmbedLiveSample('Concatenation_in_context', '100%', 50, "", "", "hide-codepen-jsfiddle") }}
Aquí estamos usando una función {{domxref("Window.prompt()", "Window.prompt()")}} en la línea 4, que le pide al usuario la respuesta a una pregunta, através de un cuadro emergente (también llamado popup) y luego, almacenará el dato dentro de una variable dada — en este caso llamada name (nombre)
. Luego, en la línea 5, usamos una función {{domxref("Window.alert()", "Window.alert()")}} para mostrar otra ventana emergente que contiene una cadena que hemos unido de la concatenación de dos string literales y la variable name (
nombre).
'Front ' + 242;Podrías esperar que diera un error, pero funciona a la perfección. Tratar de representar un string como un número no tiene sentido, pero representar un número como string si que lo tiene, así que el navegador convierte el número en una string y las muestra juntas.
typeof
para verificar si la variable es un número o una cadena):
var myDate = '19' + '67'; typeof myDate;
var myString = '123'; var myNum = Number(myString); typeof myNum;
toString()
que convertirá el equivalente en una string. Prueba esto:
var myNum = 123; var myString = myNum.toString(); typeof myString;
Llegaste al final de este artículo, pero ¿puédes recordar la información más importante? Puedes encontrar algunas pruebas para verificar que has comprendido esta información antes de seguir avanzando — Ve Prueba tus habilidades: Strings. Ten en cuenta que esto requiere conocimiento del próximo artículo, por lo que podrías leerlo antes.
Esto es lo básico que debes saber sobre las cadenas o string
s en JavaScript. En el siguiente artículo desarrollaremos más sobre esto, observando métodos de construcción de strings disponibles en JavaScript y cómo podemos usarlos para manipular nuestras cadenas de la forma que queremos.
{{PreviousMenuNext("Learn/JavaScript/First_steps/Math", "Learn/JavaScript/First_steps/Useful_string_methods", "Learn/JavaScript/First_steps")}}