Ce support sur JavaScript s'adresse à des développeurs soucieux de progresser dans leurs compétences JavaScript et de passer de la maîtrise syntaxique à la maîtrise du cycle de développement complet. Une première expérience du développement avec JavaScript, dans sa syntaxe de base, est indispensable à la bonne compréhension de cet ouvrage.
JavaScript est un langage particulièrement puissant avec une...
Ce support sur JavaScript s'adresse à des développeurs soucieux de progresser dans leurs compétences JavaScript et de passer de la maîtrise syntaxique à la maîtrise du cycle de développement complet. Une première expérience du développement avec JavaScript, dans sa syntaxe de base, est indispensable à la bonne compréhension de cet ouvrage.
JavaScript est un langage particulièrement puissant avec une expressivité assez libre. Cette liberté mal maîtrisée devient vite une source de difficultés notamment à l'obtention d'un code de qualité en un temps raisonnable. Après la lecture de ce support, vous saurez démarrer rapidement vos projets, créer un code portable et efficace, reprendre votre travail dans des contextes et supports variés. Pour cela, l'auteur a mis l'accent sur les bonnes pratiques comme l'organisation du code en modules indépendants, la réalisation de tests unitaires, le débogage, le choix de librairies externes...
Vous serez capable de gérer des projets de taille variable sans jamais perdre de vue l'architecture de vos applications, que vous soyez seul ou en équipe. Vous serez à l'aise dans vos projets web pour un usage classique comme pour un usage mobile. Grâce à TypeScript, vous apprendrez à dépasser les limites de JavaScript. Enfin, vous saurez créer, utiliser et étendre plus facilement des frameworks web adaptés à votre contexte d'exploitation comme jQuery, Dojo...
Vous bénéficierez des dernières évolutions importantes du langage grâce à la dernière norme ECMAScript pour favoriser un véritable développement objet et fonctionnel.
Des éléments complémentaires sont en téléchargement sur le site www.editions-eni.fr.
2.3 Chargement de script par le cache du navigateur
3. Portée des variables et fonctions
3.1 Portée des variables
3.2 Portée des variables dans une fonction
4. Optimisation de la portée
4.1 Limiter le contexte global
4.2 Fonction anonyme
4.3 Fermeture
5. Simplifier vos expressions
5.1 L’opérateur ||
5.2 L’opérateur &&
5.3 Comparaison
5.4 Paramètres variants
5.5 Extension de type
5.5.1 prototype
5.5.2 Array
5.5.3 String
5.5.4 Function
5.5.5 Object
6. Passage au mode strict
6.1 Usage
6.2 Quelques cas
7. JSHint
7.1 Usage de base
7.2 Chargement de code
7.3 Autre usage
7.3.1 Ligne de commande
7.3.2 Dans votre éditeur
8. Documenter votre code avec JSDoc
8.1 Le principe
8.2 Les marqueurs
8.2.1 Déclarations
8.2.2 Fonctions
8.2.3 Objet
8.2.4 Meta
8.3 Usage
8.3.1 EDI WebStorm
8.3.2 Génération d’une documentation
9. Passage d’un environnement de développement à un environnement de production
9.1 Tests unitaires
9.1.1 Introduction
9.1.2 Gestion avec votre propre librairie
9.1.3 QUnit
9.2 Minimisation
9.2.1 Présentation
9.2.2 YUI Compressor
9.2.3 Closure Compiler
Développer efficacement en objet
1. Première approche
1.1 Rappels
1.1.1 Classe
1.1.2 Instance
1.1.3 Encapsulation
1.1.4 Héritage
1.1.5 Abstraction
1.1.6 Surcharge
1.1.7 L’interface
1.1.8 Polymorphisme
1.2 Construction d’un objet
1.2.1 Préambule
1.2.2 Instance directe
1.2.3 Tableau associatif
1.2.4 Parcours des propriétés
1.3 Construction d’une classe
1.3.1 Le constructeur
1.3.2 L’opérateur new
1.3.3 L’opérateur this
1.3.4 Le mot-clé with
1.3.5 Le mot-clé instanceof
2. Contexte d’exécution
2.1 this
2.2 that
2.3 Fonction anonyme
2.4 Binding
3. Classes prédéfinies
3.1 Object
3.2 String
3.3 RegExp
3.4 Array
3.5 Date
3.6 Math
4. Notions avancées
4.1 Prototypage
4.1.1 Simple
4.1.2 Optimisée
4.2 Héritage
4.2.1 Principe
4.2.2 Surcharge
4.2.3 Polymorphisme
4.2.4 Résolution des conflits
4.3 Gestion mémoire
4.3.1 Garbage collector
4.3.2 null
4.3.3 delete
4.3.4 var
5. Framework pour le développement objet
5.1 Prototype
5.1.1 Création d’une classe
5.1.2 Héritage
5.1.3 Composition
5.2 MooTools
5.2.1 Création d’une classe
5.2.2 Héritage
5.2.3 Implémentation
5.3 jQuery
5.3.1 Introduction
5.3.2 Merge simple
5.3.3 Mélange récursif
5.4 Dojo
5.4.1 Introduction
5.4.2 Création d’une classe
5.4.3 Héritage
Adopter les bonnes pratiques
1. Espace de noms
1.1 Principe
1.2 Fonction
1.2.1 Fonction interne
1.2.2 Fonction anonyme
1.2.3 Fonction anonyme avec paramètres
1.3 Fermeture
1.4 Classe
2. Module
2.1 Présentation
2.2 Composition
3. CommonJS
3.1 Présentation
3.2 define
4. AMD
4.1 Introduction
4.1.1 Présentation
4.1.2 Quelques conseils
4.2 RequireJS
4.3 Dojo
4.4 curl
4.4.1 Principe
4.4.2 Accès relatif
4.4.3 Gestion des erreurs de chargement
4.5 Écriture de votre gestionnaire de modules
5. Déboguer votre code
5.1 Fonction alert
5.1.1 Usage
5.1.2 Simplification
5.1.3 Module
5.2 Activation/désactivation
5.3 Fenêtre indépendante
5.4 Console
5.4.1 Accès
5.4.2 log
5.4.3 Groupe
5.4.4 Niveaux de trace
5.4.5 Mesure
5.4.6 Pile d’appels
5.5 Débogueur intégré
5.5.1 Microsoft Edge
5.5.2 Chrome
5.5.3 Firefox Developer Edition
5.5.4 Conclusion
Améliorer vos compétences web
1. Page HTML
1.1 L’indispensable
1.1.1 Balises
1.1.2 Balises de structure
1.1.3 Lien
1.1.4 Tableau
1.1.5 Formulaire
1.1.6 Générique
1.2 Le CSS
1.2.1 Déclaration
1.2.2 Sélecteurs
1.2.3 Propriétés
2. Librairies JavaScript
2.1 L’objet window
2.1.1 Rôle
2.1.2 open
2.1.3 setInterval, setTimeout
2.1.4 location
2.1.5 navigator
3. DOM
3.1 Document
3.1.1 Propriétés et méthodes
3.1.2 Parcours
3.2 Modification
3.2.1 Construction
3.2.2 Événements
4. Formulaire
4.1 Validation simple
4.2 Gestion des champs
4.3 Contraintes supplémentaires
4.4 Conception d’un module de validation
5. Étude de cas
5.1 Gestion de notes dans une page web, architecture MVC
5.1.1 Première étape
5.1.2 Modèle de données
5.1.3 La vue
5.1.4 Finalisation
5.2 Gestion de notes, version 2
5.2.1 Multivue
5.2.2 Trier les notes
5.3 Gestion d’un QCM dans une page web
5.3.1 Première étape
5.3.2 Réalisation
Développer aisément en client/serveur
1. AJAX
1.1 Requête simple
1.2 Réponse XML
1.3 Paramètres GET
1.4 Paramètres POST
1.5 Requêtes entre domaines différents
1.6 Module
1.6.1 Version monorequête
1.6.2 Version multirequête
1.7 Format d’échange
1.7.1 Texte
1.7.2 XML
1.7.3 XSLT
1.7.4 JSON
1.8 Objets en client/serveur
1.8.1 Implémentation Java intrusive
1.8.2 Implémentation Java non intrusive
2. Chargement dynamique de script
2.1 Première implémentation
2.2 Module AMD
Maîtriser les frameworks Web
1. Bien démarrer avec jQuery
1.1 Concepts
1.1.1 Présentation
1.1.2 Sélecteur
1.1.3 DOM
1.1.4 Utilitaires
1.1.5 Effets de transition
1.2 Événements
1.2.1 Interactions utilisateur
1.2.2 AJAX
1.2.3 Conclusion
1.3 Plugins jQuery
1.3.1 Construction
1.3.2 Usage
2. Bien démarrer avec Dojo
2.1 Concepts
2.1.1 Présentation
2.1.2 Configuration
2.1.3 Vos modules AMD
2.1.4 DOM
2.2 Événements
2.2.1 Interactions utilisateur
2.2.2 AJAX
2.2.3 Conclusion
3. Construire votre framework web
3.1 Première étape
3.1.1 Présentation
3.1.2 Organisation
3.2 Deuxième étape
3.2.1 Usage de templates de composant
3.2.2 Réalisation d’un bouton
3.3 Troisième étape
3.3.1 Création d’une calculatrice simple
3.3.2 L’avenir
TypeScript
1. Introduction
1.1 Objectifs
1.2 Hello world
1.3 Environnement de développement
1.3.1 Visual Studio Community 2022
1.3.2 WebStorm 2022
2. Variable et constante
2.1 Variable
2.2 Constante
3. Typage
3.1 Déclaration
3.1.1 Variable
3.1.2 Fonctions
3.2 Chaînes
3.3 Nombre
3.4 Booléens
3.5 Enumération
3.6 Any, Null et Undefined
3.6.1 Any
3.6.2 Null et Undefined
3.7 Tableaux
3.8 Assertions
3.9 Itérations
4. Classes
4.1 Déclaration et usage
4.2 Héritage
4.3 Visibilité des champs
4.4 Propriétés en lecture seule
4.5 Accesseurs
4.6 Propriétés statiques
5. Interfaces
5.1 Déclaration
5.2 Propriétés optionnelles et en lecture seule
5.3 Types de fonctions
5.4 Types indexables
5.5 Implémentation
6. Génériques
6.1 Déclaration et usage
6.2 Types génériques
6.3 Classes génériques
6.4 Contraintes
7. Modules
7.1 Déclaration et usage
7.2 Import
8. Espace de noms
8.1 Déclaration et usage
8.2 Espaces de noms multiples
8.2.1 Construction d’un fichier unique
8.2.2 Instruction de compilation
8.3 Espaces de noms imbriqués
8.4 Alias
ECMAScript
1. Usage
1.1 Compatibilité
1.2 Portée
1.3 Constantes
1.4 Déclaration des fonctions simplifiée
2. Structure de données plus efficace
2.1 Chaînes de caractères
2.2 Collections
3. Développement objet rapide
3.1 Classes
3.2 Attributs
3.3 Héritage
3.4 Membres statiques
3.5 Contexte de this
3.6 Getters/setters
3.7 Assignation objet facilitée
3.8 Déclaration simplifiée
3.9 Nom de propriété dynamique
4. Programmation modulaire simplifiée
4.1 Export
4.2 Import
4.3 Usage
5. Fonctions simplifiées
5.1 Expressions lambda
5.2 Itérateurs
6. Développement asynchrone
6.1 Simple
6.2 Multiple
7. Faciliter l’usage international
7.1 Nombres
7.2 Monnaies
7.3 Dates/heures
Liste des URL
1. Éditeurs JavaScript
2. Frameworks
3. Frameworks objets
4. Librairies
5. Gestionnaires AMD
6. Outils
7. Plugins jQuery
8. Références
Index
Alexandre BRILLANT
Alexandre BRILLANT est développeur indépendant depuis plusieurs années, spécialiste des technologies Java et du développement web. Sa riche expérience et sa connaissance des bonnes pratiques du développement lui permettent de fournir aux lecteurs des ouvrages résolument pratiques pour monter efficacement en compétences.