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…
Be First to Comment