
LE langage du web.
Niveau professionnel.
Conseils pour tirer le maximum de ce cours.
Historique rapide.
Langage de script, interprété.
Documentation Mozilla.
Installer Microsoft VS Code :
Multi-plateformes.
Open-source.
Léger.
Des milliers d'extensions...
Installer les extensions VS Code :
French Language Pack for Visual Studio Code
Installer les extensions VS Code :
HTMLHint
Installer les extensions VS Code :
Debugger for Chrome
Travailler avec index.html et main.js tout au long de ce cours.
Présentation de la section.
Identifiants (case sensitive)
Déclarer systématiquement avec let.
Déclarations multiples avec l'opérateur , (virgule).
camelCase pour les variables.
Littéraux numériques
Littéraux chaînes de caractères
Template literals
Constantes
Opérateur typeof
Quelques types primitifs :
number
string
boolean
undefined
Opérateur d'affectation
Opérateurs arithmétiques
Opérateur de concaténation
Opérateurs combinés
Pré et post incrémentation / décrémentation
Opérateurs de comparaison
Egalité simple et stricte
Opérateurs logiques
Conversions implicites
Conversions explicites
Structure if/else
Structure switch/case
Opérateur ternaire
Évaluation booléenne
Short-circuit operators
Structure while
Structure do/while
Structure for
Ruptures break et continue
Syntaxe à crochets
Hétérogénéité
Parcours avec for
Parcours avec for/of
Multi-dimensions
Destructuring assignment
Une fonction est un sous-programme.
Rendre un programme modulaire.
Eviter les redondances.
Simplifier la maintenance.
Améliorer la lisibilité.
Paramètres
Retour
Hoisting, var
Scope, portée de bloc
Paramètres par défaut
Exemple : somme de 2 nombres
Rest parameter
Exemple : prénom puis notes pour moyenne
Fonctions variadiques : arguments
Exemple : moyenne
Spread operator
Exemple : moyenne recevant un tableau
Exemple de récursivité : la factorielle
La pile expliquée
Stack overflow
Exemple : récursivité sans fin.
Passage par valeur d'un nombre
Passage par référence d'un tableau
Principe des exceptions
Syntaxe try/catch
Exemple : limite de récursivité du navigateur.
Passage de la programmation procédurale à la POO.
Le problème des paramètres en procédurale.
La solution avec une conception objet.
Syntaxe
this
new
Le danger de l'ajout dynamique de membres.
Utilité des membres statiques
Propriétés statiques
Méthodes statiques
Classe 100% statique
Exemples
Enveloppe du type primitif string.
Exemples
Auto-boxing et unboxing
La classe des tableaux
Exemples
A partir de l'analyse d'un programme principal donné et du résultat attendu de son exécution, lister puis coder les classes, propriétés et méthodes nécessaires à son fonctionnement.
Exemple mettant en jeu :
Les classes
Les propriétés
Les méthodes
Un diagramme de classe
Pause entre analyse et code.
Le code des classes :
Boulanger
Le code des classes :
Produit
Fabrication
Utilité de l'héritage
Syntaxe
super()
super
instanceof
toString()
Définition du contexte, différence avec scope.
Exemple avec setTimeout()
Transmission avec that
Transmission avec bind()
Transmission par Arrow function
Exemple avec filter()
Transmission en second paramètre.
Transmission par Arrow function
Définition du DOM
Définition de l'API du web
Doc de référence en PJ
La classe Window
L'instance automatique window
Quelques propriétés :
document
location
history
Quelques méthodes :
alert()
prompt()
confirm()
setTimeout()
setInterval()
print()
Arborescence HTMLElement -> Element -> Node
Schéma dans la doc de référence anglaise de HTMLElement.
Méthodes :
Document.querySelector()
Document.querySelectorAll()
Element.querySelector()
Element.querySelectorAll()
Propriétés :
Node.textContent
HTMLElement.innerHTML
Méthodes :
Document.createElement()
Node.appendChild()
Node.insertBefore()
ChildNode.remove()
Propriétés :
HTMLElement.style
HTMLElement.style.cssText (CSSRule.cssText)
Element.classList
add(...)
remove(...)
Les 3 phases de propagation à travers le DOM.
Écouter des événements et réagir à leur survenue.
Supprimer le comportement par défaut.
Doc de référence en PJ
Les 3 phases de propagation
Schema du W3C
Démonstration
Écouter via un attribut HTML
Ajouter un écouteur lambda.
Ajouter un écouteur indépendant suppressible.
Supprimer un écouteur indépendant.
Présentation et démonstration.
Indications pour la première partie.
Création du pion.
Création de la cage, paramétrage de son style.
Boucles imbriquées de création des rangées et cellules.
Méthodes :
HTMLTableElement.insertRow()
HTMLRowElement.insertCell()
Positionnement initial du pion dans la cage.
Affichage de la cage.
Indications pour la seconde partie.
Ajout de l'écouteur.
Filtrage de la touche pressée :
Événement keydown
Propriété key
Gestion des butées.
Déplacement du pion.
Méthode Event.preventdefault()
Exemple du champ de saisie d'un nombre en base 2.
Principe des requêtes asynchrones.
AJAX à l'origine.
API Fetch aujourd'hui.
Exemple de création d'une promesse avec tirage aléatoire d'un succès ou d'un échec.
Mise en place d'un timeout.
Exemple d'utilisation simple :
Aucune donnée envoyée.
Pas d'exploitation de la réponse.
Gestion des erreurs.
Exemple d'utilisation avancée :
Envoi de données POST en JSON.
Exploitation de la réponse JSON.
Présentation de l'examen final.
Lien de parrainage.
SECTION #1
Préambule
Introduction
JavaScript, le langage du web
Installer VS Code
Passer VS Code en français
Ajouter l'extension HTMLHint
Ajouter l'extension Debugger for Chrome
Méthode de travail
SECTION #2
Maîtrisez la syntaxe
Présentation
Les variables
Les types
Les opérateurs (1/2)
Les opérateurs (2/2)
Les conversions
Quiz #1
La structure if/else
La structure switch/case
L'opérateur ternaire
L'évaluation booléenne
Quiz #2
La structure while
La structure do/while
La structure for
Les ruptures break et continue
Quiz #3
Les tableaux
Les tableaux multi-dimensions
Le destructuring asignment
Quiz #4
Les fonctions
Hoisting et scope
Les paramètres par défaut et le rest parameter
Les fonctions variadiques et le spread operator
La récursivité
Le passage de paramètres
Quiz #5
Les exceptions
SECTION #3
Programmation Orientée Objet
Présentation
Les classes : bases
Les classes : membres statiques
La classe Math
La classe String
La classe Array
Application Boulangerie : présentation
Application Boulangerie : diagramme de classes
Application Boulangerie : pause
Application Boulangerie : solution (1/2)
Application Boulangerie : solution (2/2)
Héritage (1/3)
Héritage (2/3)
Héritage (3/3)
Contexte (1/2)
Contexte (2/2)
SECTION #4
DOM et Web API
Présentation
L'objet global window
Sélectionner des éléments
Créer et supprimer des éléments
Gérer les règles CSS
Quiz #6
SECTION #5
Programmation événementielle
Présentation
La propagation dans le DOM
Les écouteurs on...
Les écouteurs lambda et indépendants
Exercice du Pion en cage : présentation
Exercice du Pion en cage : solution de la première partie
Exercice du Pion en cage : seconde partie
Exercice du Pion en cage : solution de la seconde partie
Supprimer le comportement par défaut
SECTION #6
Traitements asynchrones
Présentation
Les promesses
API Fetch sans données
API Fetch avec données
SECTION #7
Conclusion
Conclusion
Quiz #7