¿Qué es un String?

En javascript y en cualquier otro lenguaje de programación, una de las tareas que más se suelen hacer es manejar cadenas de textos y realizar tareas con ellas. Por lo tanto, es importante ver en profundidad sus características así como sus atributos y funciones de este tipo de dato.

Un String en javascript se utiliza para representar un conjunto de caracteres usado para representar el texto. En programación, cuando hablamos de una variable que posee información de texto, decimos que su tipo de dato es un String. En Javascript, es muy sencillo crear una variable con un valor de texto, hay dos formas:

Constructor Descripción
new String(s) Crea un objeto de texto a partir del texto s.
's' Solo colocando el texto entre comillas dobles o simples (forma más común).

Los String son tipos de datos primitivos, y como tal, es más sencillo utilizar los literales que la notación con el operador new. Para englobar los textos, se pueden utilizar comillas simples, comillas dobles o backstiks (estos últimos tienen un uso más extendido que veremos más adelante).

Aunque es posible utilizar comillas simples o comillas dobles en los string, es recomendable decantarse por uno de los dos estilos y no mezclarlos.

A continuación, un ejemplo de declaración de variables de texto en JavaScript:

// Literales
const textoPrincipal = "¡Hola Javascript!";
const textoSecundario = "Otro mensaje de texto";

// Objeto
const textoPrincipal = new String("¡Hola Javascript!");
const textoSecundario = new String("Otro mensaje de texto"); 

A diferencia de otros lenguajes de programación, que separan el tipo de dato string del tipo de dato char (un solo carácter ), javascript los mantiene a ambos dentro del tipo de dato String, aunque una variable sólo contenga un carácter, sigue siendo un String.


PROPIEDADES

Al crear una variable con contenido de texto, o sea un String, automáticamente, esa variable pasa a tener a su disposición todas las propiedades y métodos disponibles para este tipo de dato, por lo que podemos utilizarlo en nuestro código como sea necesario e iremos viendo en los ejemplos de las diferentes secciones.

Propiedad Descripción
.length Devuelve un (number) que es el número de carácteres de la variable de tipo string.

En el caso de los String, solo tenemos una propiedad, .length, que devuelve el tamaño de la variable de texto. A continuación podemos observar que se han utilizado string directamente, sin necesidad de guardarlos en una variable antes:

"ript".length; // 10
"Mi nombre es marco".length; // 18 (los espacios en blanco cuentan)
"".length; // 0 

Veamos una pequeña prueba contando longitudes de palabras aleatorias.

Pero las características más interesantes de los string se encuentran en los métodos de dicho tipo. Se debe tener en cuenta que, en las variables de texto, los métodos se ejecutan sobre el propio texto del String, devolviendo información modificada a partir de este.


MÉTODOS DE POSICIONES

En primer lugar existen varios métodos que permiten darnos información sobre la posición o ubicación que ocupa un determinado carácter o texto. Esta posición también suele denominarse índice. Veamos detalladamente dichos métodos:

Método Descripción Op.
.charAt(pos) Devuelve el carácter en la posición pos de la variable. []
.concat(str1, str2...) Devuelve el texto de la variable unido a str1, a str2 +
.indexOf(str) Devuelve la primera posición del texto str.
.indexOf(str, from) Igual al anterior, partiendo desde la posición from.
.lastIndexOf(str,from) identico al anterior, pero devuelve la última posición.

El método .charAt(pos) nos permite comprobar que carácter se encuentra en la posición pos del texto. Este método devolverá un String con dicho carácter. En caso de pasarle una posición que no existe, simplemente nos devolverá un String vacio (""). El valor por defecto de pos es 0.

console.log('mar'.charAt(1)) // devuelve "a" 
console.log('mar'.charAt(3)) // devuelve "" 

La otra forma (introducida en ECMAScript 5) es tratar a la cadena como un objeto similar a un arreglo, donde los caracteres individuales corresponden a un índice numérico:

console.log('mar'[1]) // devuelve a "a"
console.log('mar'[3]) // devuelve undefined 

Un simple programador. Apasionado por las nuevas tecnologías, amante de la teoría de conjuntos.