Tutoriel JavaScript Supérieur
Stylisation
Stylisation via l'attribut style
Unités de mesure dans l'attribut style
Erreurs avec les unités de mesure
Déballage des valeurs des propriétés CSS
Réinitialisation des styles via style
Définition massive des styles
Problèmes de lecture des styles
Lecture des propriétés depuis les fichiers CSS
Conversion des valeurs lues
Stylisation par classes
Une classe pour la stylisation
Inconvénient des classes
Alternance des styles via data-
Métriques des éléments
Expansion des éléments en CSS
Élément de test
Taille client de l'élément
Taille complète de l'élément
Dimensions de l'élément avec défilement
Défilement des éléments
Modification du défilement de l'élément
Défilement de l'élément jusqu'à la fin
Déploiement de l'élément
Largeur de la barre de défilement
Métriques de la fenêtre
Dimensions de la fenêtre
Dimensions de la fenêtre avec défilement
Obtention du défilement de la fenêtre
Obtention et modification du défilement de la fenêtre
Méthode pour défiler la fenêtre vers une position
Méthode pour défiler la fenêtre d'une valeur
Méthode pour défiler la fenêtre vers un élément
Événement de défilement
Collections Map
Collections Set
Introduction
Remplissage initial
Fonctionnalités utiles
Itération avec une boucle
Conversion
Suppression des doublons d'un tableau
Obtention sans doublons
Tableaux pseudo
Introduction
Ressemblance avec les tableaux
Différences
Vérification d'un tableau
Conversion en tableau
Types de tableaux pseudo
Différence entre les types
Symboles
Introduction au type Symbol
Description des symboles
Symboles comme clés d'objets
Boucle sur un objet avec des symboles
Fonction dans un objet
Opérations avec des objets dans une fonction
Symboles globaux
Obtention du nom d'un symbole
Symboles bien connus
Itérateurs
Objets itérables
Fonction itérateur
Appels d'itérateur
Générateurs
Boucles dans les générateurs
Travail unique des itérateurs
Itérateur d'objet
Création d'un objet itérable
Générateur via une propriété calculée
Itérateur intégré values
Itérateur intégré keys
Itérateur intégré entries
Trois itérateurs intégrés
Opérateur spread et itérateurs
Itérateurs intégrés de chaînes
Tableau de chiffres d'un nombre
Numérotation des éléments DOM
Obtention des données des éléments DOM
Format JSON
Stockage
Introduction
Stockage dans le débogueur
Données
Sauvegarde unique
Réécriture des données
Suppression des données
Vidage du stockage
Nombre d'entrées
Obtention d'une clé par numéro
Parcours du stockage par index
Tableaux de clés et de valeurs du stockage
Stockage de structures
Modification des structures stockées
Pratique
Expressions régulières
Introduction
Opérateurs de répétition
Parenthèses de regroupement
Échappement des caractères spéciaux
Accolades
Limitation de la gourmandise
Groupes de caractères
Ensembles de caractères
Inversion des ensembles de caractères
Spécificités du cyrillique
Caractères spéciaux dans les ensembles
Groupes de caractères dans les ensembles
Caractères spéciaux exclus dans les ensembles
Symbole du chapeau dans les ensembles
Spécificités du trait d'union dans les ensembles
Ignorer la casse
Début et fin de ligne
Frontière de mot
Multiligne
Commande 'ou'
Variable avec une regex
Méthode test
Méthode search
Méthode split
Méthode match
Captures dans la méthode match
match global
matchAll global
Méthode exec
Propriété lastIndex
Captures dans la méthode replace
Callback dans la méthode replace
Captures par défaut dans la méthode replace
Captures dans l'expression elle-même
Captures nommées
Captures nommées dans l'expression
Parenthèses non capturantes
Regard avant et arrière positif et négatif
Chaîne avec une regex
Indicateurs pour les chaînes
Barre oblique inverse dans les chaînes
Situations exceptionnelles
Introduction
Types de situations émergentes
Interception des exceptions
Développement avec try-catch
Interception des exceptions dans le code imbriqué
Objet d'exception
Types d'exception de base
Application des types d'exception
Lancement d'exceptions
Lancement de différents types d'exceptions
Lancement de ses propres types d'exceptions
Exemple d'exception avec des attributs data-
Exemple d'exception avec JSON
Propagation des exceptions
Asynchronisme
Code synchrone et asynchrone
Asynchronisme du modèle événementiel
Asynchronisme du chargement d'images
Situations exceptionnelles dans le code asynchrone
Rappels asynchrones
Introduction
Passage asynchrone du résultat au rappel
Passage d'arguments au rappel asynchrone
Gestion des exceptions dans les rappels asynchrones
Chargement d'images
Problème de l'enfer des rappels
Chargement asynchrone d'images en boucle
Promesses
Introduction aux promesses
Situations exceptionnelles
Objet d'erreur
Interception séparée des exceptions
États d'une promesse
Chaînage de promesses
Promesses à l'intérieur d'une chaîne
Exceptions dans les chaînes de promesses
Travail avec des tableaux de promesses
Création de promesses tenues
Promisification du code asynchrone
Problème du promise hell
Promesses dans un style synchrone
Exceptions dans le style synchrone
Bibliothèques
Outils
Versionnement sémantique
Terminal
NodeJS
Introduction à npm
Installation via npm
Forme courte d'installation
Dépendances dans le fichier package.json
Dépendances de développement
Formats des versions des dépendances
Paramètres du fichier package.json
Création du fichier package.json
Transfert de projet npm
Fichier package-lock.json
Mise à jour des paquets
Désinstallation des paquets
Installation globale via npm
Désinstallation globale des paquets
Outil npx
Exécution de scripts via npm
Gestionnaire Yarn
Modules ES
Introduction aux modules
Activation des modules ES
Installation de Webpack
Principe de fonctionnement de Webpack
Configuration de Webpack
Configuration du lancement de la build Webpack
Build de test via Webpack
Connexion du bundle au markup
Création d'un module ES
Connexion d'un module ES
Renommage lors de l'import
Import de tout le contenu d'un module
Export par défaut
Combinaison d'exports
Import de tout le contenu lors d'une combinaison d'exports
Export de valeurs
Valeurs comme constantes
Import de modules npm
Import dynamique
Import multiple dynamique
Conversion des modules CommonJS
Protocole HTTP
Serveur de test
Introduction
Utilisation
Exécution de code
Génération de HTML
En-têtes de réponse
Configuration du port
Lancement multiple
Formulaires
Envoi des formulaires
Méthodes d'envoi des formulaires
Envoi des formulaires par méthode GET
Envoi des formulaires par méthode POST
Requêtes GET
Application des requêtes GET
Boutons du formulaire
Envoi des formulaires via JavaScript
Interdiction de l'envoi du formulaire
Introduction à FormData
Méthodes de FormData
Itérateurs de FormData
AJAX
Introduction à AJAX
Fondamentaux de fetch
Code de réponse HTTP
Succès de la requête
Situations exceptionnelles
Interception complète des erreurs
En-têtes de réponse HTTP
Obtention de JSON
En-têtes de requête HTTP
Requêtes GET
Requêtes POST
Données via URLSearchParams
Données via FormData
Envoi de tout le formulaire
Envoi de JSON
Politique CORS
Transmission des cookies
Style synchrone
Travail avec le canevas
Démarrage
Dessin de lignes
Dessin de rectangles
Dessin de cercles
Changement de couleur de ligne
Changement de l'épaisseur des lignes
Boucles
Optimisation du code
Facteurs de vitesse de chargement du site
Ressources disponibles
Optimisation des opérations répétitives
Optimisation de la répétition d'opérations lourdes
Optimisation des opérations cycliques
Optimisation des passages de boucle inutiles
Optimisation via les fonctions intégrées
Choix de l'algorithme optimal
Optimisation de l'utilisation des expressions régulières
Optimisation de la manipulation du DOM
Optimisation de la consommation mémoire
Optimisation de la conversion en tableau
Optimisation des gestionnaires d'événements
Optimisation de la vitesse au détriment de la mémoire
Données
Immuabilité
Copie de tableau
Copie d'objet
Ajout d'éléments dans un tableau
Suppression d'éléments d'un tableau
Modification d'éléments de tableaux
Tableau d'objets
Génération d'un id aléatoire
Ajout d'un élément avec un id
Suppression d'un élément par id
Modification d'un élément par id
Modification d'une propriété par id
Obtention d'un élément par id