SlideShare une entreprise Scribd logo
Javascript Restitution
Qu’est-ce que Javascript ?
Source : OpenClassRooms
• JavaScript est un langage de programmation interprété, c'est-à-dire qu'il a besoin d'un interpréteur pour pouvoir être
exécuté.
• JavaScript est utilisé majoritairement au sein des pages Web mais aussi en guise de serveur ou d'application.
• Tout comme HTML, le JavaScript est exécuté par le navigateur de l'internaute : on parle d'un comportement client-
side, par opposition au server-sidelorsque le code est exécuté par le serveur.
• JavaScript est standardisé par l'ECMA International sous le nom d'ECMAScript qui constitue la référence du langage.
ECMAScript
ECMAScript
JavaScript
E4X
(Gecko)
JScript
(IE≤9)
JScript.NET
ActionScript
(Flash)
V8
(Chrome,
NodeJS)
Konqueror
Standard
Implémentation
Moteur
Utilisations de Javascript
Client-side Server-side
Tools
Javascript pour la plupart
des développeurs…
Types primitifs
Type Description Exemples
string chaîne de caractère "a", "Hello World !", ‘Bonjour’…
number nombre (réel / entier) 1, 2, 1.0, 3.14, NaN, Infinity…
boolean booléen true,false
null nul
La variable n’a pas été initialisée
null
undefined non défini
La variable n’a pas été définie
undefined
Différences entre null et undefined : https://bit.ly/2zFGUG8
Pour obtenir le type d’une variable : typeof(maVariable)
Types standards
Type Description Exemples
Object Objet {}, {name:"Dupont", firstName: "Jean"}…
Function Fonction sayHello(), replace(), setTimeout()…
Array Tableau [],[1,2, 3],["a","b"]…
Date Date Mon Oct 09 201721:57:53GMT+0200(CentralEuropeDaylight Time)
RegExp Regex
Expression régulière
new RegExp(/ab+c/i), new RegExp('w+')
…
Variables
var age = 18; // age est un number
age = ’19’; // désormais, c’est un string
Variables
var b;
var b = undefined; //Identique à la ligne au-dessus
// Initialisationd’une variable nulle
var a = null;
var date = new Date(); // Date du jour
Variables
varpersonne ={
nom:"Dupont",
prenom:"Jean",
age:18
};
console.log(personne);
console.log(personne.nom);
console.log(personne["nom"]);// Identique àla ligne dudessus
let / var / const ?
• L'instruction let permet de déclarer une variable dont la portée est
celle du bloc courant, éventuellement en initialisant sa valeur.
• Disponible à partir de ES 6.
• Ex: let age = 18;
let / var / const ?
• L'instruction const permet de déclarer une constante avec sa valeur
dont la portée est celle du bloc courant.
• Disponible à partir de ES 6.
• Ex: const PI = 3.14;
let / var / const ?
• L'instruction var permet de déclarer une variable dont la portée est
vraie pour la fonction qui la comporte, éventuellement en initialisant
sa valeur.
• Ex: varnom= ‘Dupont’;
Elles sont traitées avant que n'importe quel autre code soit exécuté. Ainsi, déclarer
une variable n'importe où dans le code équivaut à la déclarer au début de son
contexte d'exécution.
Cela signifie qu'une variable peut également apparaître dans le code avant d'avoir
été déclarée.
On appelle ce comportement la « remontée » (ou hoisting en anglais)
Fonctions
• Déclarer une fonction
functionecrireNom(nom) {
console.log("Je m’appelle"+ nom);
}
• ou une expression de fonction
varecrireNom=function(nom){
console.log("Je m’appelle"+ nom);
};
Opérateurs
• Affectation : =, +=,-=,*=,/=, &=,…
• Arithmétiques : +,-,*, /, …
• Logiques : && (et),|| (ou),! (not)
• Comparaison :
• Simple* : ==,!=, >,<,>=,<=
• Stricte, avec vérification du type : ===, !==
* pour == et !=, JS essaie trouver un point commun entre les 2 valeurs à l’aide notamment des méthodes
valueOf() et toString(). Détails sur https://mzl.la/2mJnkRT
Reproches faits à Javascript (ES 5)
• Sa syntaxe faisant penser que c’est un langage « brouillon »
• Trop permissif
• Code complexe et illisible
• Un typage statique optionnel des variables et des fonctions
• Pas de documentation officielle
• Des performances laissant à désirer
• Faible implémentation objet : pas de classes ni d’interfaces
• Pas d’import de modules
Pour un peu plus de lecture : https://bit.ly/2xqZW2W
Solutions
• Passez à une version supérieure (ES ≥ 6)
• Oui mais tous les navigateurs ne sont pas compatibles (IE notamment)…
• Utiliser un outil de transpilation
• Le code est écrit en ES ≥ 6 ou plus puis converti en ES 5
Ex : Traceur, BabbelJS, etc.
• Utilisez un langage intermédiaire
• Le code est écrit dans un autre langage pour compilé en Javascript
Ex : TypeScript, CoffeeScript
Bonnes pratiques
• Ecrivez votre code dans des fichiers .js séparés
• Déclarez vos variables en début de script (pour le rendre plus lisible)
• Apprenez à vous servir de la console et du debugger de votre navigateur
• Utilisez des frameworks et des bibliothèques (Angular, React, Moment.js…)
• Séparez la présentation de la logique métier
• Utilisez le mode strict (‘use strict’)
• Le code Javascript doit être « statique » (et non généré côté serveur)
• Evitez l’utilisation de la fonction eval()
• Couvrez votre code Javascript avec des tests unitaires
Un peu de lecture
• Documentation non officielle maintenue par Mozilla et la communauté
https://developer.mozilla.org/fr/docs/Web/JavaScript
• Tutoriel Javascript sur OpenClassRooms
https://openclassrooms.com/courses/dynamisez-vos-sites-web-avec-javascript
• TypeScript : https://www.typescriptlang.org/
• CoffeeScript : http://coffeescript.org/

Contenu connexe

PPTX
Hibernate jpa
Lhouceine OUHAMZA
 
PPTX
Introduction to react_js
MicroPyramid .
 
PPTX
Les dessous du framework spring
Antoine Rey
 
PPTX
Introduction à Angular
Jean-Baptiste Vigneron
 
PPTX
Introduction à React JS
Abdoulaye Dieng
 
PPT
Formation jpa-hibernate-spring-data
Lhouceine OUHAMZA
 
PDF
Basics of JavaScript
Bala Narayanan
 
PDF
Maven et industrialisation du logiciel
ENSET, Université Hassan II Casablanca
 
Hibernate jpa
Lhouceine OUHAMZA
 
Introduction to react_js
MicroPyramid .
 
Les dessous du framework spring
Antoine Rey
 
Introduction à Angular
Jean-Baptiste Vigneron
 
Introduction à React JS
Abdoulaye Dieng
 
Formation jpa-hibernate-spring-data
Lhouceine OUHAMZA
 
Basics of JavaScript
Bala Narayanan
 
Maven et industrialisation du logiciel
ENSET, Université Hassan II Casablanca
 

Tendances (20)

PPTX
Ajax presentation
Bharat_Kumawat
 
PDF
50 nouvelles choses que l'on peut faire avec Java 8
José Paumard
 
PDF
Support POO Java Deuxième Partie
ENSET, Université Hassan II Casablanca
 
PPTX
Spring boot
Pradeep Shanmugam
 
PDF
Support distributed computing and caching avec hazelcast
ENSET, Université Hassan II Casablanca
 
PDF
Javascript essentials
Bedis ElAchèche
 
PDF
ES6 presentation
ritika1
 
PDF
Concevoir, développer et sécuriser des micro-services avec Spring Boot
DNG Consulting
 
PPTX
Spring Framework
tola99
 
PPT
Introduction to Java Programming, Basic Structure, variables Data type, input...
Mr. Akaash
 
PPTX
React.js - The Dawn of Virtual DOM
Jimit Shah
 
PPTX
Angular 2.0 forms
Eyal Vardi
 
PPTX
Angular 14.pptx
MohaNedGhawar
 
PPTX
JRE , JDK and platform independent nature of JAVA
Mehak Tawakley
 
PDF
Architecture jee principe de inversion de controle et injection des dependances
ENSET, Université Hassan II Casablanca
 
PDF
Cours javascript
krymo
 
PPT
Java And Multithreading
Shraddha
 
PDF
JavaScript - Chapter 13 - Browser Object Model(BOM)
WebStackAcademy
 
PDF
Support programmation orientée objet c# .net version f8
ENSET, Université Hassan II Casablanca
 
Ajax presentation
Bharat_Kumawat
 
50 nouvelles choses que l'on peut faire avec Java 8
José Paumard
 
Support POO Java Deuxième Partie
ENSET, Université Hassan II Casablanca
 
Spring boot
Pradeep Shanmugam
 
Support distributed computing and caching avec hazelcast
ENSET, Université Hassan II Casablanca
 
Javascript essentials
Bedis ElAchèche
 
ES6 presentation
ritika1
 
Concevoir, développer et sécuriser des micro-services avec Spring Boot
DNG Consulting
 
Spring Framework
tola99
 
Introduction to Java Programming, Basic Structure, variables Data type, input...
Mr. Akaash
 
React.js - The Dawn of Virtual DOM
Jimit Shah
 
Angular 2.0 forms
Eyal Vardi
 
Angular 14.pptx
MohaNedGhawar
 
JRE , JDK and platform independent nature of JAVA
Mehak Tawakley
 
Architecture jee principe de inversion de controle et injection des dependances
ENSET, Université Hassan II Casablanca
 
Cours javascript
krymo
 
Java And Multithreading
Shraddha
 
JavaScript - Chapter 13 - Browser Object Model(BOM)
WebStackAcademy
 
Support programmation orientée objet c# .net version f8
ENSET, Université Hassan II Casablanca
 
Publicité

Similaire à Une introduction à Javascript et ECMAScript 6 (20)

PPTX
Formation java script
Romdhani Asma
 
PDF
web-avance-jssvghjjjjjjkkkkhjjjjjkrtyujj
CdricMboutou
 
PDF
Developpement web dynamique_Base de donnees.pdf
rachidimstapha
 
PDF
0519-pdf-php-bases-initiation.pdf
RihabBENLAMINE
 
PPTX
Introduction à JavaScript
Abdoulaye Dieng
 
PDF
devoxx 2022 - 10 ans de Devoxx FR et de Java.pdf
Jean-Michel Doudoux
 
PDF
Enib cours c.a.i. web - séance #5 : scala play! framework
Horacio Gonzalez
 
PDF
Langage de Programmation.pdf
AboubacarDiarra10
 
PPT
Kevin Avignon: Roslyn - La plateforme de compilation .NET
MSDEVMTL
 
PDF
Javaday Paris 2022 - Java en 2022 : profiter de Java 17
Jean-Michel Doudoux
 
PPTX
Scripting Linux avec Python partie1.pptx
FrancisRUKAN
 
PPTX
Nouveautés de java 8
Florian Beaufumé
 
PPTX
Introduction à TypeScript,language de programmation
aymeng442
 
PPT
Introduction à JavaScript
Abdoulaye Dieng
 
PDF
cours developpement web javascript 2023/2024
YounesOuladSayad1
 
PPTX
2_langage_PHP_les_bases_.2_langage_PHP_les_bases_.pptx
ahmatadoumassoudi111
 
PDF
formation cours programmation-csharp.pdf
DramaneTraor3
 
PPTX
Javascript as a first programming language : votre IC prête pour la révolution !
VISEO
 
PDF
Cours JavaScript
Olivier Le Goaër
 
Formation java script
Romdhani Asma
 
web-avance-jssvghjjjjjjkkkkhjjjjjkrtyujj
CdricMboutou
 
Developpement web dynamique_Base de donnees.pdf
rachidimstapha
 
0519-pdf-php-bases-initiation.pdf
RihabBENLAMINE
 
Introduction à JavaScript
Abdoulaye Dieng
 
devoxx 2022 - 10 ans de Devoxx FR et de Java.pdf
Jean-Michel Doudoux
 
Enib cours c.a.i. web - séance #5 : scala play! framework
Horacio Gonzalez
 
Langage de Programmation.pdf
AboubacarDiarra10
 
Kevin Avignon: Roslyn - La plateforme de compilation .NET
MSDEVMTL
 
Javaday Paris 2022 - Java en 2022 : profiter de Java 17
Jean-Michel Doudoux
 
Scripting Linux avec Python partie1.pptx
FrancisRUKAN
 
Nouveautés de java 8
Florian Beaufumé
 
Introduction à TypeScript,language de programmation
aymeng442
 
Introduction à JavaScript
Abdoulaye Dieng
 
cours developpement web javascript 2023/2024
YounesOuladSayad1
 
2_langage_PHP_les_bases_.2_langage_PHP_les_bases_.pptx
ahmatadoumassoudi111
 
formation cours programmation-csharp.pdf
DramaneTraor3
 
Javascript as a first programming language : votre IC prête pour la révolution !
VISEO
 
Cours JavaScript
Olivier Le Goaër
 
Publicité

Plus de Jean-Baptiste Vigneron (9)

PPTX
Université du soir - TDD
Jean-Baptiste Vigneron
 
PPTX
Agile Tour 2016 @ Lille
Jean-Baptiste Vigneron
 
PDF
Compte-rendu Agile Tour 2014 à Lille
Jean-Baptiste Vigneron
 
PPTX
Initiation à ASP.NET 4.0
Jean-Baptiste Vigneron
 
PPTX
Atelier initiation Windows Phone 7
Jean-Baptiste Vigneron
 
PPTX
Pattern MVVM avec MVVM Light Toolkit
Jean-Baptiste Vigneron
 
PPTX
Langage C#
Jean-Baptiste Vigneron
 
PPTX
.NET Framework
Jean-Baptiste Vigneron
 
PPTX
Versioning avec Git
Jean-Baptiste Vigneron
 
Université du soir - TDD
Jean-Baptiste Vigneron
 
Agile Tour 2016 @ Lille
Jean-Baptiste Vigneron
 
Compte-rendu Agile Tour 2014 à Lille
Jean-Baptiste Vigneron
 
Initiation à ASP.NET 4.0
Jean-Baptiste Vigneron
 
Atelier initiation Windows Phone 7
Jean-Baptiste Vigneron
 
Pattern MVVM avec MVVM Light Toolkit
Jean-Baptiste Vigneron
 
.NET Framework
Jean-Baptiste Vigneron
 
Versioning avec Git
Jean-Baptiste Vigneron
 

Dernier (7)

PDF
C-Les granulat bhv tfvhnguy tftuvuhyfyfigybh
ayachakir67
 
PDF
DEFENSE_PROFONDEUR_securite_reseau_inf.pdf
HadadMoussaMalan
 
PDF
C._Billot_Presentation_Experience_SDSI_AMUE_V1.pdf
donaldkoumi
 
PDF
Talk REseaux ICT-2 BLABLABLABLABLABLABLABLA
Souhailsouhail5
 
PDF
Webinaire ALONGE #2 - Découvrez de nouveaux résultats sur l'élevage des génis...
Institut de l'Elevage - Idele
 
PDF
Présentation Ken Lohento CIBA 2024 Benin.pdf
donaldkoumi
 
PDF
cours Cours-3A-Modulation-AM amplitude .pdf
achahbounelahoucine
 
C-Les granulat bhv tfvhnguy tftuvuhyfyfigybh
ayachakir67
 
DEFENSE_PROFONDEUR_securite_reseau_inf.pdf
HadadMoussaMalan
 
C._Billot_Presentation_Experience_SDSI_AMUE_V1.pdf
donaldkoumi
 
Talk REseaux ICT-2 BLABLABLABLABLABLABLABLA
Souhailsouhail5
 
Webinaire ALONGE #2 - Découvrez de nouveaux résultats sur l'élevage des génis...
Institut de l'Elevage - Idele
 
Présentation Ken Lohento CIBA 2024 Benin.pdf
donaldkoumi
 
cours Cours-3A-Modulation-AM amplitude .pdf
achahbounelahoucine
 

Une introduction à Javascript et ECMAScript 6

  • 2. Qu’est-ce que Javascript ? Source : OpenClassRooms • JavaScript est un langage de programmation interprété, c'est-à-dire qu'il a besoin d'un interpréteur pour pouvoir être exécuté. • JavaScript est utilisé majoritairement au sein des pages Web mais aussi en guise de serveur ou d'application. • Tout comme HTML, le JavaScript est exécuté par le navigateur de l'internaute : on parle d'un comportement client- side, par opposition au server-sidelorsque le code est exécuté par le serveur. • JavaScript est standardisé par l'ECMA International sous le nom d'ECMAScript qui constitue la référence du langage.
  • 5. Javascript pour la plupart des développeurs…
  • 6. Types primitifs Type Description Exemples string chaîne de caractère "a", "Hello World !", ‘Bonjour’… number nombre (réel / entier) 1, 2, 1.0, 3.14, NaN, Infinity… boolean booléen true,false null nul La variable n’a pas été initialisée null undefined non défini La variable n’a pas été définie undefined Différences entre null et undefined : https://bit.ly/2zFGUG8 Pour obtenir le type d’une variable : typeof(maVariable)
  • 7. Types standards Type Description Exemples Object Objet {}, {name:"Dupont", firstName: "Jean"}… Function Fonction sayHello(), replace(), setTimeout()… Array Tableau [],[1,2, 3],["a","b"]… Date Date Mon Oct 09 201721:57:53GMT+0200(CentralEuropeDaylight Time) RegExp Regex Expression régulière new RegExp(/ab+c/i), new RegExp('w+') …
  • 8. Variables var age = 18; // age est un number age = ’19’; // désormais, c’est un string
  • 9. Variables var b; var b = undefined; //Identique à la ligne au-dessus // Initialisationd’une variable nulle var a = null; var date = new Date(); // Date du jour
  • 11. let / var / const ? • L'instruction let permet de déclarer une variable dont la portée est celle du bloc courant, éventuellement en initialisant sa valeur. • Disponible à partir de ES 6. • Ex: let age = 18;
  • 12. let / var / const ? • L'instruction const permet de déclarer une constante avec sa valeur dont la portée est celle du bloc courant. • Disponible à partir de ES 6. • Ex: const PI = 3.14;
  • 13. let / var / const ? • L'instruction var permet de déclarer une variable dont la portée est vraie pour la fonction qui la comporte, éventuellement en initialisant sa valeur. • Ex: varnom= ‘Dupont’; Elles sont traitées avant que n'importe quel autre code soit exécuté. Ainsi, déclarer une variable n'importe où dans le code équivaut à la déclarer au début de son contexte d'exécution. Cela signifie qu'une variable peut également apparaître dans le code avant d'avoir été déclarée. On appelle ce comportement la « remontée » (ou hoisting en anglais)
  • 14. Fonctions • Déclarer une fonction functionecrireNom(nom) { console.log("Je m’appelle"+ nom); } • ou une expression de fonction varecrireNom=function(nom){ console.log("Je m’appelle"+ nom); };
  • 15. Opérateurs • Affectation : =, +=,-=,*=,/=, &=,… • Arithmétiques : +,-,*, /, … • Logiques : && (et),|| (ou),! (not) • Comparaison : • Simple* : ==,!=, >,<,>=,<= • Stricte, avec vérification du type : ===, !== * pour == et !=, JS essaie trouver un point commun entre les 2 valeurs à l’aide notamment des méthodes valueOf() et toString(). Détails sur https://mzl.la/2mJnkRT
  • 16. Reproches faits à Javascript (ES 5) • Sa syntaxe faisant penser que c’est un langage « brouillon » • Trop permissif • Code complexe et illisible • Un typage statique optionnel des variables et des fonctions • Pas de documentation officielle • Des performances laissant à désirer • Faible implémentation objet : pas de classes ni d’interfaces • Pas d’import de modules Pour un peu plus de lecture : https://bit.ly/2xqZW2W
  • 17. Solutions • Passez à une version supérieure (ES ≥ 6) • Oui mais tous les navigateurs ne sont pas compatibles (IE notamment)… • Utiliser un outil de transpilation • Le code est écrit en ES ≥ 6 ou plus puis converti en ES 5 Ex : Traceur, BabbelJS, etc. • Utilisez un langage intermédiaire • Le code est écrit dans un autre langage pour compilé en Javascript Ex : TypeScript, CoffeeScript
  • 18. Bonnes pratiques • Ecrivez votre code dans des fichiers .js séparés • Déclarez vos variables en début de script (pour le rendre plus lisible) • Apprenez à vous servir de la console et du debugger de votre navigateur • Utilisez des frameworks et des bibliothèques (Angular, React, Moment.js…) • Séparez la présentation de la logique métier • Utilisez le mode strict (‘use strict’) • Le code Javascript doit être « statique » (et non généré côté serveur) • Evitez l’utilisation de la fonction eval() • Couvrez votre code Javascript avec des tests unitaires
  • 19. Un peu de lecture • Documentation non officielle maintenue par Mozilla et la communauté https://developer.mozilla.org/fr/docs/Web/JavaScript • Tutoriel Javascript sur OpenClassRooms https://openclassrooms.com/courses/dynamisez-vos-sites-web-avec-javascript • TypeScript : https://www.typescriptlang.org/ • CoffeeScript : http://coffeescript.org/