Damien Flandrin

Développeur Web

6 petites mais importante fonctionnalité ES7 et ES8

il y a 1 semaine · 2 MIN DE LECTURE
#Javascript 

Le développement de nouvelles fonctionnalités pour le langage JavaScript de base s'est vraiment amélioré au cours des cinq dernières années, en partie grâce aux cadres JavaScript qui repoussent les limites et prouvent à quel point une fonctionnalité donnée peut être importante. Jetons un coup d'oeil aux "petites" fonctionnalités qu'ES7 et ES8 nous ont apportées !

Object.entries

Object.entries nous permet d'obtenir les propriétés énumérables d'un objet au format tableau ([clé, valeur]) :

Object.entries({ 'a': 'A', 'b': 'B' }); // [["a","A"],["b","B"]]

// Avec une chaîne
Object.entries('david') // [["0","d"],["1","a"],["2","v"],["3","i"],["4","d"]]

Object.entries suit le même procédé qu'un for....in le ferez

Object.values

Object.keys a été très utile pour moi donc j'étais aussi heureux de voir ce que Object.values apporte :

Object.values({ 'a': 23, 'b': 19 }) // [23, 19]

// Objet de type tableau (ordre non préservé)
Object.values({ 80: 'eighty', 0: 1, 1: 'yes' }) // [1, 'yes', 'eighty']

// Chaîne
Object.values('davidwalsh') // ["d", "a", "v", "i", "d", "w", "a", "l", "s", "h"]

// Tableau
Object.values([1, 2, 3]) // [1, 2, 3]

Object.values prend plusieurs entrées de valeurs objets, tableaux ou encore des chaînes de caractères, etc.

String.prototype.padStart/padEnd

padStart et padEnd nous permettent de remplir une chaînes de caractères donnée avec n'importe quel texte de notre choix pour s'assurer qu'une chaîne correspond à une longueur donnée :

// padStart(desiredLength, textToPrepend)

// Pas de texte
''.padStart(10, 'Ah') // 'AhAhAhAhAh'

// Du texte
'def'.padStart(6, 'abc') // 'abcdef'

// N'utiliser que ce qui est long.
'5678'.padStart(7, '1234') // '1235678'

// padEnd(desiredLength, textToAppend)
'23'.padEnd(8, '0') // '23000000'

Une utilisation de padStart pourrait inclure l'ajout d'un indicatif régional au numéro de téléphone si l'entrée de l'utilisateur n'est pas de la bonne longueur. padEnd pourrait être utilisé pour préciser la décimale.

Array.prototype.includes

Array.prototype.includes est un peu comme indexOf mais retourne plutôt une valeur vraie ou fausse à la place de l'index de l'élément :

['a', 'b', 'c'].includes('a') // Vrai, pas 0 comme l'indexOf donnerait
['a', 'b', 'c'].includes('d') // Faux

indexOf a été utilisé au fil des ans pour détecter la présence d'éléments dans un tableau, mais l'index `0' peut conduire à de faux négatifs s'il n'est pas codé correctement. Je suis heureux que JavaScript ait ajouté une fonction qui renvoie exactement ce dont nous avons besoin : une réponse positive ou négative !

Exponentiation

JavaScript a introduit une méthode abrégée d'exponentiation :

//  2 à la puissance 8
Math.pow(2, 8) // 256
//  ..devient
2 ** 8 // 256

Cette nouvelle syntaxe accomplit la même chose que Math.pow avec moins de code !

Trailing Commas

Sur les anciens navigateurs comme Internet Explorer 6, une simple virgule pouvait exploser complètement votre code JavaScript JavaScript s'adapte maintenant à la virgule supplémentaire :

let myObj = { a:'b', b: 'c', } // Pas d'erreur

let myArr = [1, 2, 3, ] // Pas d'erreur

[1, 2, 3,].length // 3
[1, 2, 3, , , ].length // 5

Le cas de la longueur du tableau est un cas à garder à l'esprit. ESLint a une règle d'accrochage des virgules que vous pouvez utiliser pour vous assurer que votre utilisation des virgules est cohérente.

···

Damien Flandrin

Je suis développeur web pour l'agence Carredas, je fais principalement du PHP avec Laravel et de l'intégration sur des projets Wordpress.
comments powered by Disqus


Développeur Web - Damien Flandrin