WeakMap et WeakSet

SOMMAIRE

00:07 Avant de commencer : sachez qu’ils sont très rarement utilisés ! 
00:23 Que sont les types WeakMap et WeakSet ?
00:40 Explication par l’exemple Map VS WeakMap
03:09 Explication détaillée avec un schéma sur excalidraw (lien ci-dessous)
05:58 Qu’est-ce qu’une fuite mémoire (memory leak) ?
07:18 Quand utiliser WeakMap et WeakSet ?
08:18 Exemple : système de cache (mémoïsation) avec WeakMap
12:56 Exemple : qui est VIP ? avec WeakSet
14:59 Différences entre WeakMap / Map et WeakSet / Set ?
15:20 Pourquoi WeakMap et WeakSet ne sont pas itérables ?

LIENS

- Schéma détaillé : https://excalidraw.com/#json=viIxjidTCdZWWTH2QGvbz,skqCWe4e3LAQI5wNZSmYUw

CODE SOURCE

- Dépôt GitHub du code utilisé dans les leçons : https://github.com/javascriptdezero/module-avance

Module avancé

Acheter maintenantEn savoir plus

Introduction

  • C'est l'heure !
  • La valeur -0 et Object.is()
  • Les timestamps
  • Le format JSON2

Type de données

  • Le type BigInt
  • Quiz #1

De nouveaux opérateurs

  • Les courts-circuits
  • L'opérateur de coalescence des nuls2
  • L'opérateur de chaînage optionnel
  • Exercices remaniement de code

Les boucles

  • La méthode forEach()
  • Les boucles for...of
  • Les boucles for...in
  • Quelle façon de boucler choisir ?

Autres opérateurs

  • L'opérateur in
  • L'opérateur virgule

Gestion des erreurs

  • La syntaxe try... catch

Les tableaux

  • La méthode filter()
  • On recode filter() de zéro !
  • La méthode map()
  • On recode map() de zéro !2
  • La méthode reduce()
  • On recode reduce() de zéro !
  • Choisir entre filter(), map() et reduce()2
  • Le chaînage de méthodes
  • La méthode some()
  • Précision sur some() et every()
  • La méthode every()
  • La méthode at()
  • Challenge : recodez some() et every() !
  • Solution au challenge

Les objets

  • Nouveautés ES6 sur les objets
  • Accesseurs de propriétés (Getters et Setters)

Types de données avancés

  • Avant-propos
  • Introduction au ramasse-miettes (garbage collector)
  • WeakMap et WeakSet
  • TypedArray3
  • Les symboles
  • Les itérables et itérateurs

La décomposition (destructuring)

  • Assignation par décomposition de tableaux
  • Décomposition et itérateurs
  • Assignation par décomposition d'objets
  • L'opérateur spread

Les fonctions

  • Qu'est-ce que le hoisting ?
  • Valeurs par défaut des paramètres
  • Décomposition dans les paramètres de fonctions
  • Fonctions variadiques (paramètres du reste)
  • Nouvelle syntaxe de définition d'une méthode
  • Le mot-clé this
  • Les fonctions fléchées3
  • Les fonctions fléchées et this
  • thisArg et les méthodes sur les tableaux
  • Les méthodes call() apply() et bind()
  • Les fonctions imbriquées
  • La portée lexicale
  • Les closures2
  • Les closures : exemple supplémentaire8
  • IIFE
  • Les générateurs

L'héritage par prototypes

  • Préambule
  • Introduction
  • Les prototypes
  • Les fonctions constructeurs
  • Constructeurs et prototypes
  • Propriétés et méthodes statiques
  • Object.create()
  • Ce qu'il faut retenir
  • Exemple d'héritage

Les classes

  • Les classes
  • Classes VS Constructeurs
  • Les classes sont des fonctions2

Les modules

  • Le mode strict
  • Introduction aux modules
  • Les modules CommonJS
  • Modules ES6
  • CommonJS VS Modules ES6
  • Exemple module ES6 dans un site web
  • Utiliser un package npm2
  • Remaniement de code

Le JavaScript asynchrone

  • Les débuts du web
  • XMLHttpRequest
  • Callback hell
  • Les promesses
  • Projet API GitHub avec les promesses
  • Projet API GitHub avec fetch2
  • Comment mixer les modules ESM et CommonJS ?
  • La syntaxe async await

Fin du module

  • Derniers conseils