Hace un tiempo, vimos la novedad más importante que presenta ES8 que son las funciones asíncronas. En esta entrada, veremos el resto de novedades.
Object.entries(obj)
El primer método que vamos a ver es Object.entries(). Es un método añadido a Object que recibe como parámetro un objeto y lo que nos devuelve es un array que contiene tantos arrays como propiedades tenga el objeto con la clave y valor de las propiedades.
1 2 3 4 5 6 7 8 |
const obj = { test: 1, foo: true, string: 'nombre' } console.log(Object.entries(obj)); // [ [ 'test', 1 ], [ 'foo', true ], [ 'string', 'nombre' ] ] |
Object.values(obj)
Este es otro método añadido a Object. Como el anterior, también recibe un objeto como parámetro y lo que nos devuelve son los valores de las propiedades del objeto pasado.
1 2 3 4 5 6 7 8 |
const obj = { test: 1, foo: true, string: 'nombre' } console.log(Object.values(obj)); // [ 1, true, 'nombre' ] |
string.padStart(num, string)
padStart nos permite rellenar una cadena de texto desde el inicio de ésta (primer carácter) hasta la longitud que hayamos indicado con los carácteres que queramos.
El método recibe como primer parámetro un número de carácteres y como segundo parámetro los carácteres con los que rellenará el string hasta llegar al número de carácteres indicado en el primer parámetro. Si no pasamos el segundo parámetro, nos lo rellenará con espacios.
1 2 3 4 5 |
console.log("string".padStart(10)); // " string" console.log("string".padStart(10, "abc")); // abcastring |
string.padEnd(num, string)
padEnd funciona igual que el anterior, pero en vez de rellenarlos por el principio de la cadena, lo rellena por el final de la cadena (último carácter).
1 2 3 4 5 |
console.log("string".padEnd(10)); // "string " console.log("string".padEnd(10, "abc")); // stringabca |
Object.getOwnPropertyDescriptors()
El método Object.getOwnPropertyDescriptors() devuelve la descripción de las propiedades del objeto pasado por parámetro.
1 2 3 4 5 6 7 8 9 10 11 12 13 |
console.log(Object.getOwnPropertyDescriptors(obj)) // { test: // { value: 1, writable: true, enumerable: true, configurable: true }, // foo: // { value: true, // writable: true, // enumerable: true, // configurable: true }, // string: // { value: 'nombre', // writable: true, // enumerable: true, // configurable: true } } |
Ver código anterior en vivo: https://repl.it/@vreaxe/ES8-Novedades
-
- https://developer.mozilla.org/es/docs/Web/JavaScript/Referencia/Objetos_globales/Object/entries
- https://developer.mozilla.org/es/docs/Web/JavaScript/Referencia/Objetos_globales/Object/value
- https://developer.mozilla.org/es/docs/Web/JavaScript/Referencia/Objetos_globales/String/padStart
- https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/padEnd
- https://developer.mozilla.org/es/docs/Web/JavaScript/Referencia/Objetos_globales/Object/getOwnPropertyDescriptor
- https://medium.com/@Rashaunwarner/new-es8-features-f3d8b7b4fc8c