Skip to content
Aprende Angular de forma rápida y efectiva  Ver curso

Novedades de ES6: Métodos de String

Seguimos fusilando las novedades de ES6, y esta vez es el turno de la clase String. ECMASCript 6 añade nuevos métodos a los strings de Javascript. Vamos a verlos.

Métodos de objeto string

repeat

myString.repeat(nTimes);

Gracias a la sintáxis de ES6, podemos repetir una cadena de strings de forma muy simple con el método repeat. Solo tenemos que indicarle cuantas veces queremos que se repita el string.

'Hola'.repeat(2); //HolaHola

startsWith

myString.startsWith(str);

Antiguamente utilizábamos el método indexOf para saber si un string comenzaba por una cadena de texto en concreto. Ahora, podemos hacerlo directamente con el método startsWith. Veamos:

//ES5
if('hola'.indexOf('ho') === 0) {console.log("yes!")};

//ES6
'hola'.startsWith('ho');// true

endsWith

myString.endsWith(str);

De forma análoga a startsWith, con endsWith ya no necesitamos usar indexOf para saber si un string acaba con una cadena concreta de texto. Veamos:

//ES5
var str = 'hola';
if(str.indexOf('a') === str.length -1) {console.log("yes!")};

//ES6
str.endsWith('a');// true

includes

myString.includes(str);

Acabamos con los métodos que liberan a indexOf de responsabilidades con el método includes. En este caso, el método nos permite saber si una cadena de texto determinada está incluida en nuestro string.

//ES5
if('hola'.indexOf('la') >= 0) {console.log("yes!")};

//ES6
'hola'.includes('la');// true

codePointAt

Este método nos devuelve el valor numérico de un code point dado un índice en el string, es decir, nos devuelve su valor unicode.

Veamos:

const str = 'x\uD83D\uDE80y';
console.log(str.codePointAt(0).toString(16)); // 78
console.log(str.codePointAt(1).toString(16)); // 1f680
console.log(str.codePointAt(3).toString(16)); // 79

Métodos estáticos

Literales raw

String.raw`template literal`;

Ya hemos hablado en el pasado de los template literals que nos permiten interpolar strings así como definir strings multilinea.

Pues bien, la clase String proporciona un método que nos permite crear template literals crudos, es decir, el texto original NO INTERPRETADO. Lo entenderás antes con un ejemplo:

var regularStr = `Hi\n${2+3}!`;
console.log(regularStr);
//"Hi
//5!"

var rawStr = String.raw`Hi\n${2+3}!`;
console.log(rawStr);
//"Hi\n5!"

fromCodePoint

De modo inverso al método de string codePointAt, String proporciona un método estático que nos devuelve el símbolo unicode a partir de su code point, es decir:

String.fromCodePoint(78); // 'x'
String.fromCodePoint(0x1f680); // 'uD83D'
String.fromCodePoint(78, 90);   // "xZ"

Conclusiones

Estas son las principales novedades que incorpora ES6 a la hora de trabajar con Strings y me aventuro a decir que algunas de ellas -especialmente las de búsqueda de cadenas en string- nos van a simplificar bastante la vida. Tiempo al tiempo…

Published inES6Javascript

Be First to Comment

Deja un comentario