Formations JavaScript

JavaScript

JavaScript Avancé

Programmation avancée, POO, librairies tierces

Durée du module / 5 jours

 

Objectif

Ce module « JavaScript avancé » vous permettra de :

- Comprendre et maîtriser la nature dynamique de JavaScript.
- Produire du code encapsulé, modulaire et architecturé.
- Comprendre des notions avancées comme les closures ou le scope des variables. 
- Eviter les pièges courants de JavaScript et adopter les bonnes pratiques de programmation. 
- Découvrir les librairies populaires (jQuery, require.js, modernizr...)
- Découvrir les outils à la base d’un worflow avancé (NodeJS, Grunt, UglifyJS, Yeoman…)

Prérequis

Ce module s’adresse à des développeurs maîtrisant déjà les bases du JavaScript et/ou un langage orienté objet (ActionScript 3, Java, PHP...).

Déroulé

Introduction et rappels

Types primitifs : Null, Undefined, Boolean, Number, String
Types natifs : Date, Array, Object, Regular Expressions
L’objet window, document
Boucles : for, for in, forEach...

Techniques avancées

True ou false : comparaison de variables, égalité (‘==’) et égalité stricte (‘===’)
Ecoute et capture d’événements
Gestion des erreurs
Erreurs à l’exécution
L’opérateur delete

Le DOM avec jQuery

Le DOM : définition, accès, manipulation
Utilisation de jQuery pour manipuler le DOM
Sélecteurs, méthodes de création, de manipulation et d'ajout au DOM.

Modification des styles CSS, des classes et des attributs.
Effets graphiques, animations.

Modèle événementiel

Faire communiquer nos objets entre eux et avec le reste de l’application.
Propagation événementielle dans le DOM (capture, bubbling...)
Utilisation de jQuery pour les évènements liés au DOM
Notion de délégation événementielle

Ajax

 Définition du chargement asynchrone via XMLHTTPRequest (xhr)
Formats de données : JSON, XML, variables...
Utilisation de la fonction $.ajax() de jQuery

Les fonctions

Arguments de fonction optionnels
Valeurs par défaut, opérateur OR (||)
Variables locales, variables globales
Scope des variables
Remontée (« hoisting ») des variables et des fonctions
Fonctions passées en tant qu’argument
Fonctions anonymes
Fonctions « internes »
Call() et apply() : utilisation et différences
Fonctions auto-exécutantes
Closures
Fonctions de rappel (« callbacks »)
Délégation pour résoudre les problèmes de scope 

Les Objects

Le type Object
Création d’objets personnalisés
Notion de prototype

JavaScript orienté objet

Pseudo-classes Orientées Objet avec prototype
Ecriture de constructeurs
Accès aux membres d’une classes : public/private/privileged
Héritage (pseudo-classique, prototypal et fonctionnel)
La fonction super()
Surcharge (« overriding ») de méthodes
Instanciation d’objets : « new » VS « Object.create »
Notion de mixins et leur utilisation 

Modèles de conception

Le modèle de conception « module » (« module pattern »)
Les namespaces 

Librairies (découverte)

Chargement de modules et gestion des dépendances avec Requirejs 
Amélioration progressive (« progressive enhancement ») avec Modernizr
Templating avec Mustache.js
Librairie de composants : Twitter Bootstrap 

Architectures et workflow

Présentation de NodeJS
Utiliser NodeJS pour créer son workflow
Organisation du code pour de gros projets : scaffolding avec Yeoman
Concaténation et minification du code avec NodeJS et UglifyJS
« Task running » avec Grunt

Pages formations visitées
Date
  • Dès que possible
  • Joindre planning
  • Janvier
  • Février
  • Mars
  • Avril
  • Mai
  • Juin
  • Juillet
  • Août
  • Septembre
  • Octobre
  • Novembre
  • Décembre
etoile Mon projet de formation :
open
Cliquez pour ouvrir la barre