Cours 3 : Langage et intro à
Applications web et mobiles
Christophe Gonzales
©CG(2023)
Javascript
Cours 3 : Javascript et Angular 1/33
Exécution de javascript
▶ Browsers contiennent un moteur Javascript :
Chakra Nitro SpiderMonkey V8
▶ Vérifient les normes ECMAScript (ES7 = ES2016)
et la plupart sont compatibles avec WebAssembly
▶ Principe de fonctionnement :
code
Javascript
moteur
Javascript
code
machine
▶ Browser exécute ce code machine
▶ Depuis 2009 : compil/exec hors browser :
Cours 3 : Javascript et Angular 2/33
HTML et javascript
Cours 3 : Javascript et Angular 3/33
Inclusion d’un fichier javascript
Cours 3 : Javascript et Angular 4/33
Création de variables en javascript : 4 manières
✖ var nom_variable = valeur;
portée de fonction si déclaration dans une fonction
variable globale si déclaration hors fonction
✖ nom_variable = valeur;
modification de la valeur d’une variable si elle existe déjà
création d’une variable globale sinon
∼ global.nom_variable = valeur;
∼ window.nom_variable = valeur;
création/modification d’une variable globale
✔ let nom_variable = valeur;
const nom_variable = valeur;
portée de bloc si déclaration dans un bloc
portée de fichier/module sinon
Cours 3 : Javascript et Angular 5/33
Types des variables (1/2)
Types primitifs :
▶ string : let x = 'toto', y = 'to' + 'to';
▶ number : let x = 30, y = 4.5;
▶ boolean : let x = true;
▶ undefined : let x, y = undefined;
▶ null : let x = null;
Types primitifs =⇒ copie par valeur :
x 3
y 3
let x = 3;
let y = x;
Cours 3 : Javascript et Angular 6/33
Types des variables (2/2)
Types référence :
▶ Object
▶ Array
▶ Function
Types référence =⇒ copie par référence :
x · · ·
y
let x = ...;
let y = x;
Cours 3 : Javascript et Angular 7/33
Noms des variables
▶ Noms autorisés : mêmes règles qu’en Java ou C
▶ Convention : notation Camel
Exemple : firstName
▶ Attention : Javascript sensible à la casse :
Exemple : firstName ̸= FirstName
Cours 3 : Javascript et Angular 8/33
Les fonctions
Cours 3 : Javascript et Angular 9/33
Les objets (1/3)
Cours 3 : Javascript et Angular 10/33
Les objets (2/3)
Cours 3 : Javascript et Angular 11/33
Les objets (3/3)
Cours 3 : Javascript et Angular 12/33
Comparaison types primitifs / référence
Cours 3 : Javascript et Angular 13/33
Les tableaux (1/2)
Cours 3 : Javascript et Angular 14/33
Les tableaux (2/2)
Les tableaux sont des objets :
=⇒ contiennent des méthodes (length, filter, forEach, etc.)
Cours 3 : Javascript et Angular 15/33
Typage dynamique
Cours 3 : Javascript et Angular 16/33
Retour sur les string et les objets
Cours 3 : Javascript et Angular 17/33
Template literals
Cours 3 : Javascript et Angular 18/33
Les constantes
Cours 3 : Javascript et Angular 19/33
Itérer les champs d’un objet (1/2)
Cours 3 : Javascript et Angular 20/33
Itérer les champs d’un objet (2/2)
Cours 3 : Javascript et Angular 21/33
Copier (cloner) un objet
Cours 3 : Javascript et Angular 22/33
Angular
Cours 3 : Javascript et Angular 23/33
Qu’est-ce qu’Angular
▶ Framework pour construire des applications clientes
=⇒ front-end
▶ Structure l’application
=⇒ simplifie programmation/maintenance/débuggage
▶ Mise en place de tests simple
▶ Utilise TypeScript/Javascript, HTML, CSS
Cours 3 : Javascript et Angular 24/33
Structure d’une appplication Angular
Affichage de la page web :
barre de navigation
menu
contenu principal
contenu 1
contenu 2
contenu 3
▶ Affichage =⇒ structure
▶ Chaque rectangle = composant Angular
▶ Intérêt des composants : réutilisables plusieurs fois
▶ Un composant peut en inclure d’autres
Cours 3 : Javascript et Angular 25/33
Logique de l’application : arbre de composants
barre de navigation
menu
contenu principal
contenu 1
contenu 2
contenu 3
comp.
navbar
comp.
menu
comp.
contenu
principal
comp.
App
comp.
contenu
=⇒ permet de structurer facilement le code!
Cours 3 : Javascript et Angular 26/33
Contenu d’un composant Angular
Un composant Angular contient essentiellement :
1 un fichier TypeScript contenant :
▶ les données du composant
▶ la logique/le comportement du composant
2 un fichier html
▶ contenant le code HTML affiché par le browser
▶ des instructions pour interagir avec le code TypeScript
3 un fichier css contenant le style propre au composant
▶ Répertoire src/app contient les composants
▶ 1 composant principal appelé app ou root
Cours 3 : Javascript et Angular 27/33
Génération d’un projet Angular
▶ ng new mon-projet
⇒ crée le composant app :
▶ Dans src/app :
▶ app.component.ts :
code TypeScript
▶ app.component.spec.ts :
pour faire des tests
▶ app.component.html :
template HTML
▶ Dans src :
▶ index.html :
point d’entrée de l’appli
Cours 3 : Javascript et Angular 28/33
Index.html
lnsertion of the
app component
Cours 3 : Javascript et Angular 29/33
Fonctionnement d’un projet Angular
1 Créer les composants (et les modules)
2 Les insérer dans l’application via des balises dans
les fichiers HTML
Exemple : <app-root></app-root>
▶ Pour compiler et ≪ servir ≫ votre application (en mode dev) :
ng serve ou npm start
Cours 3 : Javascript et Angular 30/33
Le composant App et l’appli servie
Cours 3 : Javascript et Angular 31/33
Paramétrage du ng serve / npm start
Données http =⇒ servir 127.0.0.1 plutôt que localhost
▶ npm start :
▶ objet “scripts” du fichier package.json :
"start" : "ng serve --host 127.0.0.1"
▶ ng serve :
▶ dans l’objet “serve du fichier angular.json, rajouter :
"options" : { "host" : "127.0.0.1" }
Cours 3 : Javascript et Angular 32/33
Le TypeScript du composant app
Cours 3 : Javascript et Angular 33/33

cours3-FR_poly.pdf formation POO en javascript

  • 1.
    Cours 3 :Langage et intro à Applications web et mobiles Christophe Gonzales ©CG(2023)
  • 2.
    Javascript Cours 3 :Javascript et Angular 1/33
  • 3.
    Exécution de javascript ▶Browsers contiennent un moteur Javascript : Chakra Nitro SpiderMonkey V8 ▶ Vérifient les normes ECMAScript (ES7 = ES2016) et la plupart sont compatibles avec WebAssembly ▶ Principe de fonctionnement : code Javascript moteur Javascript code machine ▶ Browser exécute ce code machine ▶ Depuis 2009 : compil/exec hors browser : Cours 3 : Javascript et Angular 2/33
  • 4.
    HTML et javascript Cours3 : Javascript et Angular 3/33
  • 5.
    Inclusion d’un fichierjavascript Cours 3 : Javascript et Angular 4/33
  • 6.
    Création de variablesen javascript : 4 manières ✖ var nom_variable = valeur; portée de fonction si déclaration dans une fonction variable globale si déclaration hors fonction ✖ nom_variable = valeur; modification de la valeur d’une variable si elle existe déjà création d’une variable globale sinon ∼ global.nom_variable = valeur; ∼ window.nom_variable = valeur; création/modification d’une variable globale ✔ let nom_variable = valeur; const nom_variable = valeur; portée de bloc si déclaration dans un bloc portée de fichier/module sinon Cours 3 : Javascript et Angular 5/33
  • 7.
    Types des variables(1/2) Types primitifs : ▶ string : let x = 'toto', y = 'to' + 'to'; ▶ number : let x = 30, y = 4.5; ▶ boolean : let x = true; ▶ undefined : let x, y = undefined; ▶ null : let x = null; Types primitifs =⇒ copie par valeur : x 3 y 3 let x = 3; let y = x; Cours 3 : Javascript et Angular 6/33
  • 8.
    Types des variables(2/2) Types référence : ▶ Object ▶ Array ▶ Function Types référence =⇒ copie par référence : x · · · y let x = ...; let y = x; Cours 3 : Javascript et Angular 7/33
  • 9.
    Noms des variables ▶Noms autorisés : mêmes règles qu’en Java ou C ▶ Convention : notation Camel Exemple : firstName ▶ Attention : Javascript sensible à la casse : Exemple : firstName ̸= FirstName Cours 3 : Javascript et Angular 8/33
  • 10.
    Les fonctions Cours 3: Javascript et Angular 9/33
  • 11.
    Les objets (1/3) Cours3 : Javascript et Angular 10/33
  • 12.
    Les objets (2/3) Cours3 : Javascript et Angular 11/33
  • 13.
    Les objets (3/3) Cours3 : Javascript et Angular 12/33
  • 14.
    Comparaison types primitifs/ référence Cours 3 : Javascript et Angular 13/33
  • 15.
    Les tableaux (1/2) Cours3 : Javascript et Angular 14/33
  • 16.
    Les tableaux (2/2) Lestableaux sont des objets : =⇒ contiennent des méthodes (length, filter, forEach, etc.) Cours 3 : Javascript et Angular 15/33
  • 17.
    Typage dynamique Cours 3: Javascript et Angular 16/33
  • 18.
    Retour sur lesstring et les objets Cours 3 : Javascript et Angular 17/33
  • 19.
    Template literals Cours 3: Javascript et Angular 18/33
  • 20.
    Les constantes Cours 3: Javascript et Angular 19/33
  • 21.
    Itérer les champsd’un objet (1/2) Cours 3 : Javascript et Angular 20/33
  • 22.
    Itérer les champsd’un objet (2/2) Cours 3 : Javascript et Angular 21/33
  • 23.
    Copier (cloner) unobjet Cours 3 : Javascript et Angular 22/33
  • 24.
    Angular Cours 3 :Javascript et Angular 23/33
  • 25.
    Qu’est-ce qu’Angular ▶ Frameworkpour construire des applications clientes =⇒ front-end ▶ Structure l’application =⇒ simplifie programmation/maintenance/débuggage ▶ Mise en place de tests simple ▶ Utilise TypeScript/Javascript, HTML, CSS Cours 3 : Javascript et Angular 24/33
  • 26.
    Structure d’une appplicationAngular Affichage de la page web : barre de navigation menu contenu principal contenu 1 contenu 2 contenu 3 ▶ Affichage =⇒ structure ▶ Chaque rectangle = composant Angular ▶ Intérêt des composants : réutilisables plusieurs fois ▶ Un composant peut en inclure d’autres Cours 3 : Javascript et Angular 25/33
  • 27.
    Logique de l’application: arbre de composants barre de navigation menu contenu principal contenu 1 contenu 2 contenu 3 comp. navbar comp. menu comp. contenu principal comp. App comp. contenu =⇒ permet de structurer facilement le code! Cours 3 : Javascript et Angular 26/33
  • 28.
    Contenu d’un composantAngular Un composant Angular contient essentiellement : 1 un fichier TypeScript contenant : ▶ les données du composant ▶ la logique/le comportement du composant 2 un fichier html ▶ contenant le code HTML affiché par le browser ▶ des instructions pour interagir avec le code TypeScript 3 un fichier css contenant le style propre au composant ▶ Répertoire src/app contient les composants ▶ 1 composant principal appelé app ou root Cours 3 : Javascript et Angular 27/33
  • 29.
    Génération d’un projetAngular ▶ ng new mon-projet ⇒ crée le composant app : ▶ Dans src/app : ▶ app.component.ts : code TypeScript ▶ app.component.spec.ts : pour faire des tests ▶ app.component.html : template HTML ▶ Dans src : ▶ index.html : point d’entrée de l’appli Cours 3 : Javascript et Angular 28/33
  • 30.
    Index.html lnsertion of the appcomponent Cours 3 : Javascript et Angular 29/33
  • 31.
    Fonctionnement d’un projetAngular 1 Créer les composants (et les modules) 2 Les insérer dans l’application via des balises dans les fichiers HTML Exemple : <app-root></app-root> ▶ Pour compiler et ≪ servir ≫ votre application (en mode dev) : ng serve ou npm start Cours 3 : Javascript et Angular 30/33
  • 32.
    Le composant Appet l’appli servie Cours 3 : Javascript et Angular 31/33
  • 33.
    Paramétrage du ngserve / npm start Données http =⇒ servir 127.0.0.1 plutôt que localhost ▶ npm start : ▶ objet “scripts” du fichier package.json : "start" : "ng serve --host 127.0.0.1" ▶ ng serve : ▶ dans l’objet “serve du fichier angular.json, rajouter : "options" : { "host" : "127.0.0.1" } Cours 3 : Javascript et Angular 32/33
  • 34.
    Le TypeScript ducomposant app Cours 3 : Javascript et Angular 33/33