Un string es un tipo de Variables que permiten representar una cadena de caracteres. A diferencia de otros lenguajes, en Javascript no existe una representación de un solo caracter (char).

Varias formas de crear strings

En Javascript existen varias formas de crear strings. La primera, y la que suelo utilizar yo es usando las dobles comillas, veamos un ejemplo:

const user = "Jhon Doe";
console.log(user)

Si ejecutas este código verás que lo que sale en la consola literalmente es Jhon Doe, el valor del string.

Mucho ojo porque no es lo mismo crear una variable string con un número que una variable de tipo número, es decir, estas dos variables no son iguales:

const varString = 10;
const varNum = "10";

La variable string tiene operaciones de string (combinar strings, mirar su longitud, etc) y la variable número tiene operaciones para números (sumar, restar, multiplicar, dividir, etc)

Otra forma de crear strings en Javascript es usando comillas simples. Aquí es importante saber que da igual usar comillas simples o comillas sobles, el resultado es el mismo, es más cuestión de gustos que otra cosa.

Como en Javascript se puede hacer lo mismo usando varias sintaxis, es bastante habitual en el proyecto usar algún tipo de linter o fixer en el proyecto que se encargue de asegurar de que todas las personas que toquen el proyecto lo hagan igual. En Javascript para hacer esto se suele usar Prettier 🚧

const user = 'Jhon Doe';
console.log(user)

En realidad te he mentido, sí que hay una diferencia, y es que si quieres meter comillas dobles dentro de un string no lo puedes hacer usando comillas dobles, es decir, esto +NO* se puede hacer:

const user = "Jhon "The great" Doe";
console.log(user)

En cambio, esto sí que se puede hacer:

const user = 'Jhon "The great" Doe';
console.log(user)

La última forma es la más avanzada y se hace usando los Backticks es decir así:

const user = `Jhon "The great" Doe`;
console.log(user)

Esta forma también es igual que las anteriores, de no ser que quieras meter algún caracter especial te da igual usar una forma que la otra (eso sí, dentro de un proyecto intenta usar siempre la misma).

Pero los strings con backticks tienen una propiedad especial, se pueden usar para intercalar variables dentro del string, por ejemplo:

const name = "Jhon";
const nickname = "The great";
const surname = "Doe";
const fullName = `${Jhon} "${nickname}" ${Doe}`;
console.log(fullName);

Si lo ejecutas verás que el resultado es: Jhon "The great" Doe, igual que el ejemplo anterior, con la diferencia de que ahora tienes el nombre, apellidos y nickname separados en variables.

Esto te va a resultar un poco raro de primeras, pero tiene su lógica. La idea es que dentro del string creado con backticks puedas meter otras variables, para hacer eso hay que usar la sintaxis de ${nombreVariable}. Gracias a eso puedo crear un string con el nombre completo usando otras variables y metiendo de por medio los espacios y las comillas.

Otra cosa que mola de los strings creados con backticks es que pueden tener varias líenas, por ejemplo:

const text = `Primera línea
más líneas del string
otra línea
la última línea del string
`;

Esto con la otra forma de crear strings no puedes hacerlo, de no ser que metas el salto de línea usando el caracter especial de \n.

Concatenación de Strings

Javascript nos da facilidades para trabajar con strings, una de ellas es la concatenación de los mismos, es decir, unión de varios strings. La concatenación se hace usando el más (+), como si fueran números.

El ejemplo anterior de los backticks lo podemos cambiar para usar concatenación:

const name = "Jhon";
const nickname = "The great";
const surname = "Doe";
const fullName = name + ' ' + '"' + nickname + '"' + ' ' + surname;
console.log(fullName);

Como ves este ejemplo queda mucho más lioso que con backticks, ya que hay que ir concatenando los espacios a cada variable, además he tenido que usar comillas simples para poder poder las comillas dobles.

Antes he dicho que lo mejor es no mezclar sintaxis. Yo lo que suelo hacer es usar comillas dobles siempre que puedo y cuando necesito combinación de variables variables strings, o concateno usando el más, si no es muy complejo, o uso backticks directamente.

Longitud de los strings

Una cosa que puedes mirar de los strings es su longitud, es decir, el número de caracteres que tiene el string en cuestión, para ello se usa la notación del punto para acceder a sus propiedades, es este caso la longitud (length).

Por ejemplo:

const pokemon = "Charizard";
const pokemonNameLength = pokemon.length;
console.log(pokemon);
console.log(pokemonNameLength);

El código anterior primero imprimirá Charizard y luego 9, ya que el string contiene 9 caracteres.

Es interesante saber que el tipo de variable que devuelve la propiedad length es un número, por lo que podrás usar las propiedades de los Números en Javascript 🚧.

Los métodos de startsWith y endsWith

Los strings tienen un par de métodos que permiten saber si un string empieza o termina de determinada forma. Si no sabes todavía lo que es un método no te preocupes, puedes echar un ojo a las Funciones de Javascript 🚧 para familiarizarte con este tipo de cosas.

Pues bien, existen estos dos métodos, startsWith y endsWith, que devuelven un booleano dependiendo de si empiezan o terminan de determinada forma, veamos un par de ejemplos:

const url = "https://www.google.com";
const url2 = "youtube.com";
console.log(url.startsWith("https"));
console.log(url2.startsWith("https"));

En el ejemplo anterior el primer console.log imprime true y el segundo false porque la segunda url no empieza por https.

El método de endsWith funciona de la misma forma pero mirando el final del string:

const text = "I love videogames";
const text2 = "I love games";
const text3 = "I love music";
console.log(text.endsWith("games"));
console.log(text2.endsWith("games"));
console.log(text3.endsWith("games"));

Aquí he puesto tres console.log para ilustrar que los dos primeros strings devuelven true porque terminan igual a pesar de que son palabras distintas.

Más cosas que se pueden hacer con strings

Con los strings se pueden hacer de todo, pero por no alargar más este artículo he decidido separarlo en algunas operaciones que pueden ser comunes.

Por ejemplo puedes Saber si un string está contenido en otro en Javascript, el resultado será de tipo booleano.

También puedes Poner la primera letra de un string en mayúsculas en Javascript, esto es muy útil cuando quieres pintar el nombre alguien o de algo y el nombre te viene de un sitio o lo escribe el usuario y está todo en minúsculas.

Una cosa muy típica es querer Parseos de String a otros tipos en Javascript, por ejemplo a números para poder hacer operaciones entre sí, y también en el otro sentido, es decir, Convertir datos a String en Javascript 🚧

Muy útil es saber se puede Cambiar todas las ocurrencias de un string por otro en Javascript 🚧, es decir imagina que tienes un string con una frase muy larga y quieres cambiar una palabra que aparece varias veces por otra, esto usando una regex lo puedes hacer relativamente fácil.

O por ejemplo se puede usar El método slice() de Javascript para cortar strings 🚧, es decir, puedes por ejemplo quedarte con los primeros 5 caracteres de un string, o con los 8 finales, o cortar algo del medio del string.