Avant-propos
Première partie
Les bases du JavaScript
1 Réflexions autour du JavaScript
3
1.1 JavaScript, c'est quoi ?3
1.2 Brève histoire du JavaScript4
1.3 Le standard ECMAscript4
1.4 Rappel sur le principe client/serveur6
1.5 Les possibilités du JavaScript8
1.6 Limites et sécurités du JavaScript9
1.7 Impact sur les performances et le référencement10
1.8 Limage du JavaScript et son avenir10
1.9 L'évolution des navigateurs et la malédiction IE11
1.10 Place du javascript dans un projet web12
2 Hello(s) World(s)
13
2.1 Les exemples de Hello World13
2.2 La console des navigateurs17
2.3 L'extension Web Developer20
2.4 L'outil Google PageSpeed20
2.5 JavaScript non activé21
2.6 Le bon éditeur de texte22
2.7 Programmer et partager du JS en ligne23
2.8 Mettre un site en ligne23
2.9 Les bonnes pratiques24
3 Structure d'un script
31
3.1 Intégrer du JavaScript31
3.2 Les variables35
3.3 Les blocs d'instructions39
3.4 Les tests conditionnels40
3.5 Les conditions43
3.6 Les boucles47
3.7 Les fonctions52
4 Les chaînes de caractères en JavaScript
59
4.1 Déclaration d'une chaîne de caractères59
4.2 Concaténation de chaînes62
4.3 L'objet String63
4.4 Le traitement des caractères spéciaux66
4.5 Exécuter une chaîne JavaScript67
4.6 Manipulations avancées avec les expressions régulières68
5 Les mathématiques
77
5.1 Les conversions de types de données77
5.2 L'objet Math80
5.3 Les nombres aléatoires81
5.4 L'affichage formaté de nombres83
5.5 Le type BigInt84
6 Manipulation de dates
89
6.1 L'objet Date89
6.2 Les minuteries93
6.3 L'affichage formaté de dates94
6.4 La bibliothèque Moment. JS95
7 Les tableaux et les ensembles
97
7.1 Utilité des tableaux97
7.2 L'objet Array98
7.3 Les tableaux spéciaux102
7.4 La manipulation de tableaux104
7.5 Les ensembles Set113
7.6 Les dictionnaires Map115
8 Programmation objet et JSON
117
8.1 Les principes de la programmation objet117
8.2 Créer des objets JavaScript121
8.3 Le format JSON132
8.4 Résumé de la POO JavaScript136
9 Réintroduction au JavaScript
139
9.1 Les évolutions de structure du langage139
9.2 Les évolutions sur les objets142
9.3 Comprendre un appel JavaScript143
9.4 Console et débogueur145
10 L'objet maître window
149
10.1 L'objet window149
10.2 Manipulation des pop-up157
10.3 Manipulation des frames159
Deuxième partie
L'interactivité
11 La programmation événementielle
163
11.1 Programmation événementielle163
11.2 Le gestionnaire d'événements en détail166
12 Manipuler le document
177
12.1 Le HTML dynamique177
12.2 Trouver les éléments du document178
12.3 Manipuler les éléments185
12.4 créer de nouveaux éléments195
12.5 Le drag and drop201
12.6 La sélection de texte202
13 Les formulaires
209
13.1 L'objet Form209
13.2 Les éléments de formulaires213
13.3 Les contrôles de saisie231
13.4 Les données côté serveur231
14 Les appels AJAX
235
14.1 Appels asynchrones235
14.2 Le traitement côté serveur239
14.3 Les contraintes liées à AJAX241
15 Traitements asynchrones avec Promise
245
15.1 Les traitements asynchrones245
15.2 L'objet promis245
15.3 Promise dans la vraie vie248
16 La gestion des erreurs
251
16.1 La détection d'une erreur251
16.2 L'objet error253
17 Les cookies et l'objet Storage
257
17.1 Les cookies257
17.2 Le stockage de données locales262
17.3 Les différences entre cookie et l'objet storage263
18 La géolocalisation
265
18.1 Confidentialité et sécurité265
18.2 Obtenir la position actuelle265
18.3 Obtenir les positions régulièrement267
18.4 Les scripts de cartographie267
19 Les notifications
269
19.1 Le principe des notifications269
19.2 Les notifications en JavaScript270
20 Le dessin et les canvas
273
20.1 L'élément canvas273
20.2 Interactivités et animations283
Troisième partie
Pour aller encore plus loin avec JavaScript
21 Monétisation et publicité
289
21.1 La monétisation289
21.2 La publicité290
21.3 Les bloqueurs de publicité291
22 Introduction à Node.js
295
22.1 Installation de Node.js295
22.2 Utilisation de Node.js en serveur web299
22.3 Utilisation de npm301
22.4 Express, un serveur web node.js prêt à l'emploi304
22.5 Node.js et les WebSockets311
23 Les langages dérivés du JavaScript
317
23.1 TypeScript317
23.2 Babel321
23.3 JSX324
24 Bibliothèques et frameworks
327
24.1 Frameworks327
24.2 JQuery329
24.3 React336
24.4 Angular343
24.5 Vue.js349
24.6 Vanilla.js365
24.7 Quelques bibliothèques javascript utiles365
25 Les Web Workers
369
25.1 Principes des Web Workers369
25.2 Un cas réel de Web Worker372
26 Créer une extension de navigateur
377
26.1 JavaScript dans un lien de la barre des favoris377
26.2 Créer une extension sur Google Chrome379
27 Créer des applications
389
27.1 Création d'applications de bureau389
27.2 Création d'applications mobiles391
Annexe 1 : WebServerFull, votre environnement de développement local géré avec Docker Desktop
395
Pourquoi un environnement local ?395
Pourquoi Docker ?396
Installation de Docker Desktop396
Installation de notre serveur Web401
Annexe 2 : JavaScript dans Google Sheets
411
Pourquoi l'environnement Google ?411
Une feuille de calcul Google Sheets411
Appel AJAX depuis Google Sheets415
La planification des exécutions419
Les outils Google Apps Script421
Annexe 3 : CSS
423
Utilisation de FontAwesome423
La pseudo-classe : hover424
Les pseudo-classes : first-child et : last-child424
Les pseudo-éléments : : before et : : after425
Les boîtes fléchées avec CSS426
Les animations CSS426
Les transformations CSS427
Index
429