En JavaScript, las cadenas se utilizan para almacenar y manipular texto. No existe un tipo separado para un solo carácter. El formato interno de las cadenas es siempre UTF-16.

Una cadena representa cero o más caracteres que se escriben entre comillas.

Sobre las comillas

Podemos distinguir comillas simples, comillas dobles, y acento grave:

let single = 'single-quoted';
let double = "double-quoted"; 
let backticks = `backticks`;

Las comillas dobles y simples son iguales. Sin embargo, los acentos graves son diferentes. Puede utilizarlos para incrustar cualquier expresión en la cadena envolviéndola en ${…} de la siguiente forma:

Strings in javascript
let str = "W3Docs"; console.log(`Welcome to ${str}`); // Welcome to W3Docs

Una de las ventajas más cruciales de los acentos graves es que permiten que una cadena se extienda en varias líneas de esta manera:

Strings in javascript
let languagesList = `Languages: * Javascript * Php * Java `; console.log(languagesList); // a list of languages, multiple lines

Pero, tenga en cuenta que las comillas simples y las comillas dobles no funcionarán en este caso. Si los usa intentando aplicar varias líneas, ocurrirá un error:

let guestList = "Guests: // Error: Unexpected token ILLEGAL 
* John ";

Las comillas simples y dobles aparecieron antes que los acentos graves. Por lo tanto, los acentos graves son más funcionales.

También puedes especificar una “función de plantilla” antes del primer acento grave. La sintaxis se verá así:

func `string`

Como regla, la función func se llama automáticamente. Recibe tanto la cadena como las expresiones incrustadas procesándolas. Utilizando esta característica, puedes implementar rápidamente una plantilla personalizada. De todos modos, los desarrolladores rara vez lo usan en la práctica.

Caracteres especiales

Puedes crear cadenas de varias líneas con comillas dobles o simples con la ayuda de \n, así:

Strings in javascript
let languagesList = "Languages:\n * Javascript\n * Php\n * Java"; console.log(languagesList); // a multiline list of languages

Existen otros caracteres especiales menos comunes.

Encuentra algunos de ellos en la lista a continuación:

  • \', \" Estos caracteres especiales se usan para citar.
  • \r - retorno de carro. Este carácter ya no se usa solo. Una combinación de dos caracteres \r\n se usa para representar un salto de línea en los archivos de texto de Windows.
  • \\ - barra invertida
  • \t - tabulador
  • \xXX - carácter unicode con un unicode hexadecimal XX específico
  • \uXXXX - este es un símbolo unicode con el código hexadecimal XXXX en codificación UTF-16. Debe incluir exactamente 4 dígitos.

Aquí hay ejemplos con unicode:

Unicode strings in javascript
console.log("\u00E9"); // é console.log("\u{03BB}"); // λ

Tenga en cuenta que todos los caracteres especiales comienzan con una barra invertida. También se conoce como un “caracter de escape”.

También puedes usarlo en caso de que quieras poner una cita en la cadena.

Aquí hay un ejemplo:

Strings in javascript
console.log('This\'s the W3Docs site!'); // This’s the W3Docs site

Además, considere que la barra invertida se utiliza principalmente para corregir la lectura de la cadena por parte de JavaScript, después de lo cual desaparece. En la memoria de la cadena, no puedes encontrar ninguna \ . Pero cuando necesitas mostrar una barra invertida real dentro de la cadena, debes duplicarla, como en este ejemplo:

Strings in javascript
console.log(`The backslash: \\`); // The backslash: \ let backslash = "aa ///\\"; // This is correct // let backslash = "aa ///\"; // This is not. console.log(backslash);

La longitud de la cadena

La propiedad length se utiliza para encontrar la longitud de una cadena:

Strings length in javascript
console.log(`W3Docs\n`.length); // 7

Tenga en cuenta que \n es un carácter especial. Por lo tanto, la longitud debería ser 7.

A veces los desarrolladores escriben mal esta propiedad llamando a str.length() en lugar de solo str.length. Eso no funcionará.

Accediendo a los caracteres

Los corchetes[pos] se utilizan principalmente para obtener un carácter en una posición [pos]. También puedes hacerlo llamando al método str.charAt(pos). El primer carácter debe comenzar desde cero:

Character at a position strings in javascript
let str = `Welcome`; // the first character console.log(str[0]); // W console.log(str.charAt(0)); // W // the last character console.log(str[str.length - 1]); // e

Los desarrolladores modernos prefieren usar los corchetes, mientras que charAt se usa raramente

Las cadenas son inmutables

No es posible cambiar las cadenas en JavaScript. Mira este ejemplo para asegurarte de que no funcionará:

Change character at a position strings in javascript
let str = 'Welcome'; str[0] = 'w'; console.log(str[0]);

La práctica común es crear una cadena completamente nueva asignándola a str en lugar de la antigua de esta manera:

Character at a position strings in javascript
let str = 'Hi'; str = 'h' + str[1]; // replace the string console.log(str); // hi

Cambio de mayúsculas y minúsculas

Podemos distinguir dos métodos para cambiar el caso. Aquí están:

toUpperCase change strings in javascript
console.log('Welcome to W3Docs'.toUpperCase()); // WELCOME TO W3DOCS console.log('Welcome to W3Docs'.toLowerCase()); // welcome to w3docs

En otro escenario, si un solo carácter debe estar en minúsculas, use este método:

toLowerCase change strings in javascript
console.log('Welcome to W3Docs' [0].toLowerCase()); // 'w'

Buscando una subcadena

Vamos a descubrir las formas de buscar una subcadena dentro de una cadena.

str.indexOf

Este es el primer método que se utiliza para buscar la substr en str. Comienza desde la posición específica pos y devuelve esa posición en el momento en que se encuentra la coincidencia, o -1, en caso de que no se encuentre nada.

Vamos a revisar el siguiente ejemplo:

Index strings in javascript
let str = 'Welcome to W3Docs'; console.log(str.indexOf('Welcome')); // 0, because 'Welcome' is found at the beginning console.log(str.indexOf('welcome')); // -1, not found, the search is case-sensitive console.log(str.indexOf("W3Docs")); // 11, "W3Docs" is found at the position 11

str.lastIndexOf(substr, position)

Este método busca desde el final de una cadena hasta el principio. Las apariciones se listarán en orden inverso.

Considere una pequeña dificultad con indexOf dentro de la prueba if. No se puede colocar en if de esta manera:

Index strings in javascript
let str = "Welcome to W3Docs"; if (str.indexOf("Welcome")) { console.log("Thank you"); // doesn't work! }

Por lo tanto, es necesario verificar el -1, de la siguiente manera:

Index strings in javascript
let str = "Welcome to W3Docs"; if (str.indexOf("Welcome") != -1) { console.log("Thank you"); // works now }

Incluye, empieza con, termina con

El método más contemporáneo str.includes(substr, pos) es capaz de devolver true/false dependiendo de si hay substr en el str.

Actúa como en el ejemplo, si necesitas probar la coincidencia sin necesitar su posición al mismo tiempo:

Includes strings in javascript
console.log("Welcome to W3Docs".includes("Welcome")); // true console.log("Hi".includes("Bye")); // false

El segundo argumento de str.includes es la posición desde la que empiezas a buscar. Aquí un ejemplo:

Includes strings in javascript
console.log("Welcome".includes("come")); // true console.log("Welcome".includes("come", 5)); // false, from position 5 there is no "come"

Obteniendo una subcadena

JavaScript incluye tres métodos para obtener una subcadena: substring, substr y slice.

str.slice(start [, end])

Este método se utiliza para devolver una parte de la cadena desde start a end.

Por ejemplo:

The slice method in javascript strings
let str = "welcome"; console.log(str.slice(0, 6)); // 'welcom', the substring from 0 to 6 (not including 6) console.log(str.slice(0, 1)); // 'w', from 0 to 1, but not including 1, so only character at 0

Si no hay un segundo argumento, el slice irá hasta el final, así:

Slice in javascript strings
let str = "welcome"; console.log(str.slice(3)); // 'come', from the 3-position till the end

Para start/end también puedes usar valores negativos.

Por ejemplo:

The slice in javascript strings
let str = "welcome "; // start at the 5th position from the right, end at the 1st from the right console.log(str.slice(-5, -1)); // 'come'

str.substring(start [, end])

Este método se utiliza para devolver una parte de la cadena entre start y end.

Se parece mucho a slice. La diferencia más notable es que en el marco de este método, start puede ser mayor que end.

Por ejemplo:

The substring in javascript strings
let str = "welcome"; // these are same for substring console.log(str.substring(3, 6)); // "com" console.log(str.substring(6, 3)); // "com" // ...but not for slice: console.log(str.slice(3, 6)); // "com" (the same) console.log(str.slice(6, 3)); // "" (an empty string)

str.substr(start [, length])

Este método devuelve una parte de la cadena a partir de start, con una longitud específica. Difiere de los métodos anteriores. Este método te ayudará a especificar la length en lugar de la posición final.

Por ejemplo:

The substr in javascript strings
let str = "welcome"; console.log(str.substr(3, 4)); // 'come', from the 3-position get 4 characters

El primer argumento podría ser negativo para contar desde el final:

The substr in javascript strings
let str = "welcome"; console.log(str.substr(-4, 2)); // 'co', from the 4th position get 2 characters

Comparación de las cadenas

Es esencial saber que las cadenas deben compararse carácter por carácter en orden alfabético.

También deberías considerar las siguientes características:

  1. La minúscula es mayor que la mayúscula, así:
    Comparison in javascript strings
    console.log('a' > 'Z'); // true
  2. Las letras que contienen marcas diacríticas se consideran “fuera de orden”.

Por ejemplo:

Comparison in javascript strings
console.log('Germany' > 'England'); // true

Ahora, vamos a empezar a revisar la representación interna de las cadenas en JavaScript.

En JavaScript, codificamos todas las cadenas utilizando UTF-16. Esto significa que cada uno de los caracteres tiene un código numérico apropiado.

str.codePointAt(pos)

Se utiliza para devolver el código para el carácter en la posición pos:

Return the code for the character at position javascript string
// different case letters have different codes console.log("w".codePointAt(0)); // 119 console.log("W".codePointAt(0)); // 87

String.fromCodePoint(code)

Hace un carácter por el código numérico:

Character's numeric code javascript string
console.log(String.fromCodePoint(80)); // P

Los caracteres Unicode también pueden agregarse por sus códigos aplicando \u seguido del código hex.

Por ejemplo:

Unicode characters javascript string
// 90 is 5a in hexadecimal system console.log('\u005a'); // Z

Vamos a mirar a los caracteres con códigos 65..220 y hacer una cadena de ellos:

Unicode characters javascript string
let str = ''; for (let i = 65; i <= 220; i++) { str += String.fromCodePoint(i); } console.log(str); // ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~€‚ƒ„ // ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁ ÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜ

Aquí, puedes notar que las letras mayúsculas van primero, luego varios caracteres especiales, y finalmente, Ö al final de la salida.

Hora del Cuestionario: ¡Pon a Prueba Tus Habilidades!

¿Listo para desafiar lo que has aprendido? Sumérgete en nuestros cuestionarios interactivos para una comprensión más profunda y una forma divertida de reforzar tu conocimiento.

¿Te resulta útil?