Académique Documents
Professionnel Documents
Culture Documents
Achref El Mouelhi
elmouelhi.achref@gmail.com
1 Introduction
3 Console
4 Commentaires
5 Variables
11 Objets
Attributs
Méthodes
Constructeurs
Prototypes
13 Opérateurs
L’opérateur in
L’opérateur delete
L’opérateur instanceof
14 Constantes
15 Exceptions
16 Hoisting
17 Expressions régulières
JavaScript
ch r e
standardisé par ECMAScript en juin 1997 pour
permettant de©A
compléter l’aspect algorithmique manquant à HTML (et CSS)
rendre plus vivant le site web avec notamment des animations,
effets et de l’interaction avec l’internaute (le visiteur, le client...).
JavaScript
Spécificités du JavaScript
JavaScript
AppleScript
H I ©
JScript, VBScript et TypeScript (Microsoft)EL
M OU
f E L
LiveScript (Netscape) puis JavaScript
chr e
ActionScript (MacroMedia)
A
© (Open-source)
CoffeeScript
...
JavaScript
JavaScript
H I ©
EL
Première méthode
<button onclick="alert(’Hello World’);"> Cliquer ici O U
</button>
f E LM
ch r e
©A
JavaScript
Deuxième méthode
<!DOCTYPE html>
<html>
<head>
<title>First JS Page</title>
<script type="text/javascript">
H I ©
function maFonction() {
UEL
alert("Hello World !"); O
}
f E LM
</script>
</head> ch r e
<body>
©A
<button onclick="maFonction()">
Cliquer ici
</button>
</body>
</html>
JavaScript
Deuxième méthode
<!DOCTYPE html>
<html>
<head>
<title>First JS Page</title>
<script type="text/javascript">
H I ©
function maFonction() {
UEL
alert("Hello World !"); O
}
f E LM
</script>
</head> ch r e
<body>
©A
<button onclick="maFonction()">
Cliquer ici
</button>
</body>
</html>
L’attribut type="text/javascript" n’est plus nécessaire depuis HTML 5.
H & H: Research and Training 11 / 143
Intégrer JavaScript dans HTML
JavaScript
Troisième méthode
<!DOCTYPE html>
<html>
<head>
<title>First JS Page</title>
<script src="script.js"></script>
H I ©
</head>
UEL
<body>
O
<button onclick="maFonction()"> Cliquer ici</button>
</body>
f E LM
</html>
ch r e
©A
JavaScript
Troisième méthode
<!DOCTYPE html>
<html>
<head>
<title>First JS Page</title>
<script src="script.js"></script>
H I ©
</head>
UEL
<body>
O
<button onclick="maFonction()"> Cliquer ici</button>
</body>
f E LM
</html>
ch r e
©A
Contenu du script.js
function maFonction() {
alert("Hello World !");
}
JavaScript
JavaScript
©A
var str = prompt("Votre nom", "John Wick");
alert(str);
JavaScript
La console, pourquoi ?
L MO
r e f E
A ch
©
JavaScript
La console, pourquoi ?
H I ©
en affichant le contenu de variables (déboguer)
U EL
en vérifiant les blocs du code visites (tracer)
L MO
r e f E
A
Modifions le contenu chdu script.js
©
function maFonction(){
console.log("Hello World !");
}
JavaScript
JavaScript
r
Invite de commandes
ch e
© A
Windows PowerShell
Cmder
JavaScript
JavaScript
JavaScript
H I ©
EL
Il est aussi possible de définir un raccourci de console.log
var cl = console.log; O U
cl("Hello World !");
f E LM
ch r e
©A
JavaScript
Commentaire sur une seule ligne
// commentaire
H I ©
UEL
O
f E LM
ch r e
©A
JavaScript
Commentaire sur une seule ligne
// commentaire
JavaScript
Commentaire sur une seule ligne
// commentaire
JavaScript
Déclaration d’une variable avec le mot clé var
var x;
H I ©
UEL
O
f E LM
ch r e
©A
JavaScript
Déclaration d’une variable avec le mot clé var
var x;
Initialisation
H I ©
x = 0;
UEL
O
f E LM
ch r e
©A
JavaScript
Déclaration d’une variable avec le mot clé var
var x;
Initialisation
H I ©
x = 0;
UEL
O
f E LM
Déclaration + initialisation
ch r e
var y = 5; ©A
JavaScript
Déclaration d’une variable avec le mot clé var
var x;
Initialisation
H I ©
x = 0;
U EL
O
f E LM
Déclaration + initialisation
ch r e
var y = 5; ©A
Il est possible de déclarer simultanément plusieurs variables
var x = 0, y = 5;
JavaScript
JavaScript
JavaScript
Utiliser une variable non-déclarée et non-initialisée ⇒
ReferenceError
alert (v);
H I ©
UEL
O
f E LM
ch r e
©A
JavaScript
Utiliser une variable non-déclarée et non-initialisée ⇒
ReferenceError
alert (v);
H I ©
EL
Une variable déclarée mais non-initialisée a par défaut la valeur
U
undefined
O
var w;
f E LM
alert (w);
ch r e
©A
JavaScript
Utiliser une variable non-déclarée et non-initialisée ⇒
ReferenceError
alert (v);
H I ©
EL
Une variable déclarée mais non-initialisée a par défaut la valeur
U
undefined
O
var w;
f E LM
alert (w);
ch r e
©A
NaN : not a number
var x = "bonjour";
n = x * 2;
console.log(n);
JavaScript
JavaScript
Pour récupérer le type de valeur affectée à une variable
console.log(typeof 5);
// affiche number
console.log(typeof true);
// affiche boolean
H I ©
U EL
console.log(typeof 5.2);
O
// affiche number
f E LM
console.log(typeof "bonjour");
ch r e
A
// affiche string
©
console.log(typeof ’c’);
// affiche string
var x;
console.log(typeof x);
// affiche undefined
JavaScript
r e f E
ch
©A
JavaScript
r e f E
ch
Remarque ©A
Une variable déclarée dans un bloc { ... } autre que fonction (if,
for...) a une portée globale.
JavaScript
Addition (qui peut se transformer en concaténation) et conversion
var x = 1;
var y = 3;
var z = ’8’;
var t = "2";
var u = "bonjour";
var v = "3bonjour";
H I ©
var m;
var n = 2.5;
UEL
O
LM
console.log(x + y); // 4
console.log(x + z); // 18
console.log(x + parseInt(z)); // 9
r e f E
console.log(x + t); // 12
ch
©A
console.log(x + y + z); // 48
console.log(z + y + x); // 831
console.log(x + u); // 1bonjour
console.log(x + parseInt(u)); // NaN
console.log(x + v); // 13bonjour
console.log(x + parseInt(v)); // 4
console.log(u + v); // bonjour3bonjour
console.log(x + m); // NaN
console.log(x + n); // 3.5
JavaScript
* : multiplication
H I ©
UEL
- : soustraction
O
/ : division
f E LM
% : reste de A ch r e
la division
©
** : exponentiel
JavaScript
Attention, l’opérateur + pour les chaı̂nes de caractères est différent de tous les
autres opérateurs arithmétiques
var a = "2";
var b = ’3’;
var resultat = a * b;
console.log(resultat);
H I ©
// affiche 6
UEL
O
f E LM
ch r e
©A
JavaScript
Attention, l’opérateur + pour les chaı̂nes de caractères est différent de tous les
autres opérateurs arithmétiques
var a = "2";
var b = ’3’;
var resultat = a * b;
console.log(resultat);
H I ©
// affiche 6
UEL
O
f E LM
ch
Cependant ce code génère un NaN r e
var a = "bon";
var b = ’jour’;
©A
var resultat = a * b;
console.log(resultat);
// affiche NaN
console.log(b + parseInt(a));
// affiche jourNaN
JavaScript
JavaScript
JavaScript
Quelques raccourcis
i++; ≡ i = i + 1;
i--; ≡ i = i - 1; H I ©
UEL
i += 2; ≡ i = i + 2; O
f E LM
i -= 3; ≡ i = i - 3;
ch r e
©A
i *= 2; ≡ i = i * 2;
i /= 3; ≡ i = i / 3;
i %= 5; ≡ i = i % 5;
JavaScript
Exemple de post-incrémentation
var i = 2;
var j = i++;
console.log(i); // affiche 3
H I ©
console.log(j); // affiche 2
UEL
O
f E LM
ch r e
©A
JavaScript
Exemple de post-incrémentation
var i = 2;
var j = i++;
console.log(i); // affiche 3
H I ©
console.log(j); // affiche 2
UEL
O
f E LM
Exemple de pre-incrémentation
ch r e
var i = 2; ©A
var j = ++i;
console.log(i); // affiche 3
console.log(j); // affiche 3
JavaScript
JavaScript
©A
de chaı̂ne de caractères (EvalError si l’expression est mal
formulée)
var str = "2 + 5 * 3";
console.log(eval(str));
// affiche 17
JavaScript
L’opérateur unaire + peut être utilisé pour convertir en nombre
console.log(typeof (+"3"));
// affiche number
console.log(+true);
// affiche 1
H I ©
UEL
O
f E LM
ch r e
©A
JavaScript
L’opérateur unaire + peut être utilisé pour convertir en nombre
console.log(typeof (+"3"));
// affiche number
console.log(+true);
// affiche 1
H I ©
U EL
M O
E L la négation ou la conversion en
L’opérateur unaire - peut être utilisé pour
f
nombre
c h re
console.log(typeof
// affiche ©
A
nombre
(-"-3"));
console.log(-"-3");
// affiche 3
console.log(-true);
// affiche -1
JavaScript
JavaScript
Pour connaı̂tre la longueur d’une chaı̂ne
var str = "bonjour";
console.log(str.length);
// affiche 7
H I ©
UEL
O
f E LM
ch r e
©A
JavaScript
Pour connaı̂tre la longueur d’une chaı̂ne
var str = "bonjour";
console.log(str.length);
// affiche 7
H I ©
UEL
O
f E LM
Pour supprimer les espaces au début et à la fin de la chaı̂ne
var str = " bon jour ";
ch r e
©A
console.log(str.length);
// affiche 12
JavaScript
Pour extraire une sous-chaı̂ne à partir de l’indice 3 jusqu’à la fin
var str = "bonjour";
console.log(str.substr(3));
// affiche jour
H I ©
UEL
O
f E LM
ch r e
©A
JavaScript
Pour extraire une sous-chaı̂ne à partir de l’indice 3 jusqu’à la fin
var str = "bonjour";
console.log(str.substr(3));
// affiche jour
H I ©
U EL
On peut aussi préciser le nombre de caractère à extraire
var str = "bonjour";
L MO
console.log(str.substr(3,2));
r e f E
// affiche jo
A ch
©
JavaScript
Pour extraire une sous-chaı̂ne à partir de l’indice 3 jusqu’à la fin
var str = "bonjour";
console.log(str.substr(3));
// affiche jour
H I ©
U EL
On peut aussi préciser le nombre de caractère à extraire
var str = "bonjour";
L MO
console.log(str.substr(3,2));
r e f E
// affiche jo
A ch
©
Pour extraire les trois derniers caractères, on utilise une valeur négative
var str = "bonjour";
console.log(str.substr(-3)); //eq substr(4) avec 4 = length - 3
// affiche our
JavaScript
JavaScript
JavaScript
JavaScript
JavaScript
H I ©
Remarque
UEL
O
LM
Appeler une de ces méthodes à partir d’une variable ayant la valeur
f E
undefined génère une erreur nommée TypeError.
r e
ch
©A
JavaScript
JavaScript
JavaScript
Exécuter un premier bloc si une condition est vraie, un deuxième sinon (le bloc else
if (condition1) {
...
}
else {
...
H I ©
EL
}
O U
f E LM
ch r e
©A
JavaScript
Exécuter un premier bloc si une condition est vraie, un deuxième sinon (le bloc else
if (condition1) {
...
}
else {
...
H I ©
EL
}
O U
Exemple
f E LM
ch r e
©A
var x = 3;
if (x > 0)
{
console.log(x + " est strictement positif");
}
else
{
console.log(x + " est négatif ou nul");
}
JavaScript
On peut enchaı̂ner les conditions avec else if (et avoir un
troisième bloc voire ... un nième)
if (condition1)
{
...
H I ©
}
UEL
O
LM
else if (condition2)
{
r e f E
...
ch
}
... ©A
else
{
...
}
JavaScript
Exemple
var x = -3;
if (x > 0)
{
H I ©
EL
console.log(x + " est strictement positif");
}
O U
else if (x < 0)
f E LM
{
ch r e
console.log(x + " est strictement négatif");
}
else
©A
{
console.log(x + " est nul");
}
JavaScript
Opérateurs logiques
&& : ET
|| : OU
! : NON
H I ©
ˆ : XOR
UEL
O
f E LM
ch r e
©A
JavaScript
Opérateurs logiques
&& : ET
|| : OU
! : NON
H I ©
ˆ : XOR
UEL
O
f E LM
ch r e
©A
Tester plusieurs conditions (en utilisant des opérateurs logiques)
JavaScript
Opérateurs logiques
&& : ET
|| : OU
! : NON
H I ©
ˆ : XOR
UEL
O
f E LM
ch r e
©A
Tester plusieurs conditions (en utilisant des opérateurs logiques)
JavaScript
Opérateurs de comparaison
JavaScript
Structure conditionnelle switch : syntaxe
switch (nomVariable) {
case constante-1:
groupe-instructions-1;
break;
H I ©
case constante-2:
UEL
O
LM
groupe-instructions-2;
break;
r e f E
ch
...
case constante-N:
©A
groupe-instructions-N;
break;
default:
groupe-instructions-par-défaut;
}
JavaScript
Remarques
©A
Le bloc default est facultatif, il sera exécuter si la valeur de la
variable ne correspond à aucune constante de case
JavaScript
Structure conditionnelle avec switch
var x = 5;
switch (x) {
case 1:
alert(’un’);
H I ©
break;
UEL
O
LM
case 2:
alert(’deux’);
r e f E
break;
ch
case 3:
alert(’trois’); ©A
break;
default:
alert("autre");
}
JavaScript
Un multi-case pour un seul traitement
var x = 5;
switch (x) {
case 1:
case 2:
H I ©
EL
alert(’un ou deux’);
break;
O U
LM
case 3:
alert(’trois’);
break;
r e f E
ch
©A
case 4:
case 5:
alert(’quatre ou cinq’);
break;
default:
alert("autre");
}
JavaScript
JavaScript
Considérons l’exemple suivant
var nbr = prompt(’Saisir un nombre’);
if (nbr % 2 == 0) {
alert ("pair);
}
else {
H I ©
EL
alert ("imapir");
}
O U
f E LM
ch r e
©A
JavaScript
Considérons l’exemple suivant
var nbr = prompt(’Saisir un nombre’);
if (nbr % 2 == 0) {
alert ("pair);
}
else {
H I ©
EL
alert ("imapir");
}
O U
f E LM
ch r e
Simplifions l’écriture avec l’expression ternaire
©A
var nbr = prompt(’Saisir un nombre’);
nbr % 2 == 0 ? alert("pair") : alert(’impair’);
JavaScript
Considérons l’exemple suivant
var nbr = prompt(’Saisir un nombre’);
if (nbr % 2 == 0) {
alert ("pair);
}
else {
H I ©
EL
alert ("imapir");
}
O U
f E LM
ch r e
Simplifions l’écriture avec l’expression ternaire
©A
var nbr = prompt(’Saisir un nombre’);
nbr % 2 == 0 ? alert("pair") : alert(’impair’);
Ou
alert(nbr % 2 == 0 ? "pair" : ’impair’);
JavaScript
JavaScript
JavaScript
Exemple
var i = 0;
while (i < 5) {
console.log(i);
i++;
H I ©
}
UEL
O
f E LM
ch r e
©A
JavaScript
Exemple
var i = 0;
while (i < 5) {
console.log(i);
i++;
H I ©
}
UEL
O
f E LM
Le résultat est ch r e
0 ©A
1
2
3
4
JavaScript
JavaScript
JavaScript
Exemple
var i = 0;
do {
console.log(i);
i++;
H I ©
} while (i < 5);
U EL
O
f E LM
ch r e
©A
JavaScript
Exemple
var i = 0;
do {
console.log(i);
i++;
H I ©
} while (i < 5);
U EL
O
f E LM
Le résultat est ch r e
0 ©A
1
2
3
4
JavaScript
Boucle for
for (initialisation; condition[s]; incrémentation) {
H I ©
...
UEL
O
LM
}
r e f E
ch
©A
JavaScript
Boucle for
for (initialisation; condition[s]; incrémentation) {
H I ©
...
UEL
O
LM
}
r e f E
ch
©A
Attention aux boucles infinies si vous modifiez la valeur du compteur à
l’intérieur de la boucle.
JavaScript
Exemple
for (var i = 0; i < 5; i++) {
console.log(i);
}
H I ©
UEL
O
f E LM
ch r e
©A
JavaScript
Exemple
for (var i = 0; i < 5; i++) {
console.log(i);
}
H I ©
UEL
O
Le résultat est f E LM
ch r e
©A
0
1
2
3
4
JavaScript
Exercice
Écrire un code JavaScript qui permet d’afficher les nombres pairs compris entre 0 et 10.
H I ©
UEL
O
f E LM
ch r e
©A
JavaScript
Exercice
Écrire un code JavaScript qui permet d’afficher les nombres pairs compris entre 0 et 10.
H I ©
Première solution
UEL
for (var i = 0; i < 10; i++) {
O
if (i % 2 == 0) {
console.log(i);
f E LM
}
ch r e
©A
}
JavaScript
Exercice
Écrire un code JavaScript qui permet d’afficher les nombres pairs compris entre 0 et 10.
H I ©
Première solution
UEL
for (var i = 0; i < 10; i++) {
O
if (i % 2 == 0) {
console.log(i);
f E LM
}
ch r e
©A
}
Deuxième solution
JavaScript
Tableau (array)
H I ©
une variable pouvant avoir simultanément plusieurs valeurs
U EL
O
l’accès à chaque valeur s’effectue via son indice et avec
l’opérateur [] : [ indice ]
f E LM
ch r e
la première valeur (on dit aussi élément) du tableau est d’indice 0.
©A
les valeurs peuvent avoir plusieurs types différents
JavaScript
Déclaration
var tab = new Array(value1, value2,... valueN);
H I ©
UEL
O
f E LM
ch r e
©A
JavaScript
Déclaration
var tab = new Array(value1, value2,... valueN);
H I ©
EL
Le raccourci
M OU
f E L valueN];
var tab = [value1, value2,...
chr e
© A
JavaScript
Déclaration
var tab = new Array(value1, value2,... valueN);
H I ©
EL
Le raccourci
M OU
f E L valueN];
var tab = [value1, value2,...
chr e
© A
Accès à l’élément du tableau d’indice i
tab[i]
JavaScript
Exemple
var tab = [2, 3, 5];
H I ©
UEL
O
f E LM
ch r e
©A
JavaScript
Exemple
var tab = [2, 3, 5];
I
Pour connaı̂tre la taille du tableau (nombre d’élément)
H ©
console.log(tab.length); UEL
O
f E LM
ch r e
©A
JavaScript
Exemple
var tab = [2, 3, 5];
I ©
Pour connaı̂tre la taille du tableau (nombre d’élément)
H
console.log(tab.length); U EL
O
f E LM
r e
ch élément du tableau
Pour afficher le premier
tab[0] © A
JavaScript
Exemple
var tab = [2, 3, 5];
I ©
Pour connaı̂tre la taille du tableau (nombre d’élément)
H
console.log(tab.length); U EL
O
f E LM
r e
ch élément du tableau
Pour afficher le premier
tab[0] © A
JavaScript
H I ©
EL
tab[tab.length] = 7;
O U
f E LM
ch r e
©A
JavaScript
H I ©
EL
tab[tab.length] = 7;
O U
f E LM
Ou tout simplement
ch r e
tab.push(7);
©A
H I ©
UEL
O
f E LM
ch r e
©A
}
console.log(tab[i]);
H I ©
UEL
O
f E LM
ch r e
©A
}
console.log(tab[i]);
H I ©
UEL
O
E LM
On peut aussi utiliser la version simplifiée de for
f
for(var elt of tab) {
ch r e
©A
console.log(elt);
}
}
console.log(tab[i]);
H I ©
UEL
O
E LM
On peut aussi utiliser la version simplifiée de for
f
for(var elt of tab) {
ch r e
©A
console.log(elt);
}
JavaScript
Opérations sur les tableaux
f E
reverse() : inverse l’ordre des éléments du tableau
r e
ch
©A
sort() : trie un tableau
...
JavaScript
O U
LM
for (var elt of sports) {
console.log(elt);
r e f E
ch
}
©A
// affiche foot, tennis, volley
console.log(tab);
// affiche basket
JavaScript
JavaScript
JavaScript
H I ©
EL
for (var elt of sports) {
console.log(elt);
O U
LM
}
f E
// affiche foot, tennis, rugby, natation, volley
r e
A ch
console.log(tab);
// affiche©basket
JavaScript
H I ©
EL
for (var elt of sports) {
console.log(elt);
O U
LM
}
f E
// affiche foot, tennis, rugby, natation, volley
r e
A ch
console.log(tab);
// affiche©basket
JavaScript
console.log(tab);
// affiche tennis, basket
JavaScript
Exercice
H I ©
Écrire un code JavaScript qui
UEL
O
LM
1 permet à l’utilisateur de saisir un sport
2
r e f E
supprime le sport saisi s’il est déjà dans le tableau sports
ch
3
©A
ajoute le sport saisi s’il n’est pas dans le tableau sports
JavaScript
JavaScript
JavaScript
H I ©
EL
map() : pour appliquer une fonction sur les éléments d’un tableau
O U
LM
filter() : pour filtrer les éléments d’un tableau selon un critère
r e f E
défini sous forme d’une fonction anonyme ou fléchée
JavaScript
JavaScript
JavaScript
JavaScript
console.log(somme);
// affiche 14
JavaScript
Déclarer une fonction
function nomFonction ([les arguments]){
les instructions de la fonction
}
H I ©
UEL
O
f E LM
ch r e
©A
JavaScript
Déclarer une fonction
function nomFonction ([les arguments]){
les instructions de la fonction
}
H I ©
UEL
O
Exemple
f E LM
function somme (a, b) {
ch r e
©A
return a + b;
}
JavaScript
Déclarer une fonction
function nomFonction ([les arguments]){
les instructions de la fonction
}
H I ©
UEL
O
Exemple
f E LM
function somme (a, b) {
ch r e
©A
return a + b;
}
JavaScript
Déclarer une fonction anonyme et l’affecter a‘ une variable
var nomVariable = function ([les arguments]) {
les instructions de la fonction
}
H I ©
UEL
O
f E LM
ch r e
©A
JavaScript
Déclarer une fonction anonyme et l’affecter a‘ une variable
var nomVariable = function ([les arguments]) {
les instructions de la fonction
}
H I ©
UEL
O
Exemple
f E LM
var somme2 = function (a, b){
ch r e
©A
return a + b;
}
JavaScript
Déclarer une fonction anonyme et l’affecter a‘ une variable
var nomVariable = function ([les arguments]) {
les instructions de la fonction
}
H I ©
UEL
O
Exemple
f E LM
var somme2 = function (a, b){
ch r e
©A
return a + b;
}
JavaScript
H I ©
UEL
O
f E LM
ch r e
©A
JavaScript
H I ©
UEL
Exemple O
f E LM
; ch r e
var somme4 = new Function ("a", "b", "return a + b")
©A
JavaScript
H I ©
UEL
Exemple O
f E LM
; ch r e
var somme4 = new Function ("a", "b", "return a + b")
©A
Appeler une fonction anonyme
var resultat4 = somme4 (1, 3);
JavaScript
H I ©
UEL
O
f E LM
ch r e
©A
JavaScript
H I ©
Le resultat
UEL
O
NaN
f E LM
ch r e
©A
JavaScript
H I ©
Le resultat
UEL
O
NaN
f E LM
ch r e
©A
On peut affecter une valeur par défaut aux paramètres
function somme (a=0, b=0) {
return a + b;
}
JavaScript
Et si on veut que la fonction somme retourne la somme quel que
soit le nombre de paramètres
function somme () {
result = 0;
for (var i = 0; i < arguments.length ; i++) {
H I ©
result += arguments[i];
UEL
}
O
return result;
f E LM
}
ch r e
©A
JavaScript
Et si on veut que la fonction somme retourne la somme quel que
soit le nombre de paramètres
function somme () {
result = 0;
for (var i = 0; i < arguments.length ; i++) {
H I ©
result += arguments[i];
UEL
}
O
return result;
f E LM
}
ch r e
©A
Tous ces appels sont corrects
console.log(somme(2, 3, 5));
console.log(somme(2, 3));
console.log(somme(2, 3, 5, 7));
console.log(somme(2));
H & H: Research and Training 79 / 143
Fonctions Fonction de retour (callback)
JavaScript
Fonction de retour (callback)
JavaScript
Fonction de retour (callback)
JavaScript
JavaScript
Exercice
H I
Modifier la fonction opération pour qu’elle puisse accepter deux ©
U EL
fonctions callback ensuite retourner le résultat de la composition
O
des deux.
f E LM
Par exemple :
ch r e
©A
operation (2, 3 , 6, somme, produit) retourne 30 = (2
+ 3) * 6
JavaScript
La fonction setTimeout accepte deux paramètres
le deuxième : une durée (en millisecondes) qui précède l’exécution de la fonction callback
H I ©
U EL
O
f E LM
ch r e
©A
JavaScript
La fonction setTimeout accepte deux paramètres
le deuxième : une durée (en millisecondes) qui précède l’exécution de la fonction callback
H I ©
EL
Déclarons une fonction qui affiche bonjour
function direBonjour() {
O U
}
alert("Bonjour");
f E LM
ch r e
©A
JavaScript
La fonction setTimeout accepte deux paramètres
le deuxième : une durée (en millisecondes) qui précède l’exécution de la fonction callback
H I ©
EL
Déclarons une fonction qui affiche bonjour
function direBonjour() {
O U
}
alert("Bonjour");
f E LM
ch r e
©A
Utilisons cette fonction comme callback dans setTimeout
function direBonjourApresXSecondes(x) {
setTimeout(direBonjour, x * 1000);
}
JavaScript
La fonction setTimeout accepte deux paramètres
le deuxième : une durée (en millisecondes) qui précède l’exécution de la fonction callback
H I ©
EL
Déclarons une fonction qui affiche bonjour
function direBonjour() {
O U
}
alert("Bonjour");
f E LM
ch r e
©A
Utilisons cette fonction comme callback dans setTimeout
function direBonjourApresXSecondes(x) {
setTimeout(direBonjour, x * 1000);
}
JavaScript
JavaScript
JavaScript
Il est aussi d’annuler l’exécution de la fonction callback de
setTimeout avec clearTimeout si cette dernière est appelée
avant la fin de la durée de setTimeout
var timeout;
function direBonjourApresXSecondes(x) {
H I ©
timeout = setTimeout(function(){
U EL
O
LM
alert("Bonjour");
},
r e f E
x * 1000);
ch
}
©A
direBonjourApresXSecondes(5);
clearTimeout(timeout);
// Bonjour ne sera jamais affiché
JavaScript
JavaScript
JavaScript
H I ©
Remarque
U EL
O
LM
Si la fonction callback nécessite de paramètres, alors il est possible de
f E
les préciser après la durée dans setInterval et setTimeout.
r e
ch
©A
JavaScript
Considérons les deux fonctions suivantes
var i = 0;
function f() {
i++;
}
H I ©
f();
U EL
console.log(i); // affiche 1
O
function g() {
f E LM
var j = 5;
ch r e
©A
}
g();
console.log(j); // génère une erreur
JavaScript
Considérons les deux fonctions suivantes
var i = 0;
function f() {
i++;
}
H I ©
f();
U EL
console.log(i); // affiche 1
O
function g() {
f E LM
var j = 5;
ch r e
©A
}
g();
console.log(j); // génère une erreur
Remarque
Une variable déclarée dans une fonction avec le mot-clé var n’a pas
une portée globale. Donc, elle est locale.
H & H: Research and Training 88 / 143
Fonctions Closure d’une fonction
JavaScript
La closure : déclarer une variable locale dans une fonction qui
existe en globale
var i = 0;
function f() {
var i = 5;
H I ©
i++;
U EL
console.log(i);
O
}
f E LM
f(); // affiche 6
ch r e
©A
console.log(i); // affiche 0
JavaScript
La closure : déclarer une variable locale dans une fonction qui
existe en globale
var i = 0;
function f() {
var i = 5;
H I ©
i++;
U EL
console.log(i);
O
}
f E LM
f(); // affiche 6
ch r e
©A
console.log(i); // affiche 0
Remarque
La variable i affichée à la dernière instruction est la variable déclarée
à la première ligne.
H & H: Research and Training 89 / 143
Objets
JavaScript
nom wick
prénom john
H I ©
..
.
..
.
UEL
O
f E LM
ch r e
©A
JavaScript
nom wick
prénom john
H I ©
..
.
..
.
UEL
O
f E LM
ch r e
Comment faire ? ©A
Les tableaux indexés ne le permettent pas
Les tableaux associatifs ou les objets
JavaScript
Objet ?
H I ©
EL
un ensemble de
M OU
attributs (variables, champs)L
re f E : clé + valeur[s]
c h
méthodes : fonctions
©A
JavaScript
JavaScript
JavaScript
Un objet est non-itérable avec for ... of
for(var elt of obj)
console.log(elt);
H I ©
UEL
O
f E LM
ch r e
©A
JavaScript
Un objet est non-itérable avec for ... of
for(var elt of obj)
console.log(elt);
H I ©
Il est itérable avec for ... in
UEL
O
for(var key in obj)
f E LM
r e
console.log(key + " : " + obj[key]);
ch
©A
JavaScript
Un objet est non-itérable avec for ... of
for(var elt of obj)
console.log(elt);
H I ©
Il est itérable avec for ... in
UEL
O
for(var key in obj)
f E LM
r e
console.log(key + " : " + obj[key]);
ch
©A
Un objet peut aussi être créé ainsi
var obj = new Object();
obj.nom = "wick";
obj.prenom = "john";
JavaScript
Copier un objet
var obj2 = obj;
H I ©
UEL
O
f E LM
ch r e
©A
JavaScript
Copier un objet
var obj2 = obj;
H I ©
Modifier un ⇒ modifier l’autre
UEL
O
obj2.nom = "travolta";
f E LM
console.log(obj.nom);
// affiche travolta ch r e
©A
JavaScript
Copier un objet
var obj2 = obj;
H I ©
Modifier un ⇒ modifier l’autre
UEL
O
obj2.nom = "travolta";
f E LM
console.log(obj.nom);
// affiche travolta ch r e
©A
Ajouter un nouvel attribut à un objet existant
obj2.age = 35;
JavaScript
Pour cloner un objet
function clone(obj){
var obj2 = {};
for (key in obj)
obj2[key] = obj[key];
H I ©
EL
return obj2;
OU
}
M
L "john"};
f E
var obj = {nom: "wick", prenom:
e
chr
var obj2 = clone(obj);
A
obj2.nom = "abruzzi";
©
console.log(obj);
// affiche wick
console.log(obj2);
// affiche abruzzi
JavaScript
Ou tout simplement
H I ©
EL
var obj2 = Object.assign({}, obj);
console.log(obj);
O U
console.log(obj2);
f E LM
ch r e
©A
JavaScript
Ou tout simplement
H I ©
EL
var obj2 = Object.assign({}, obj);
console.log(obj);
O U
console.log(obj2);
f E LM
ch r e
©A
La méthode Object.create() permet de copier un objet.
JavaScript
JavaScript
JavaScript
Considérons toujours l’objet obj
const obj = { nom: ’wick’, prenom: ’john’ };
H I ©
UEL
O
f E LM
ch r e
©A
JavaScript
Considérons toujours l’objet obj
const obj = { nom: ’wick’, prenom: ’john’ };
I ©
Déclarons une variable name qui reçoit sa valeur d’un attribut d’obj
H
var name = obj.nom;
UEL
O
f E LM
ch r e
©A
JavaScript
Considérons toujours l’objet obj
const obj = { nom: ’wick’, prenom: ’john’ };
I ©
Déclarons une variable name qui reçoit sa valeur d’un attribut d’obj
H
var name = obj.nom;
UEL
O
f E LM
ch r e
Modifions la valeur d’un n’affecte pas l’autre
name = "travolta";
©A
console.log(obj.nom);
// affiche wick
obj.nom = "abruzzi";
console.log(name);
// affiche travolta
JavaScript
JavaScript
JavaScript
JavaScript
JavaScript
JavaScript
Ceci génère une erreur
var obj = {
nom: "wick",
prenom: "john",
direBonjour: function (){
console.log("bonjour " + nom);
H I ©
EL
}
};
O U
LM
obj.direBonjour();
r e f E
ch
©A
JavaScript
Ceci génère une erreur
var obj = {
nom: "wick",
prenom: "john",
direBonjour: function (){
console.log("bonjour " + nom);
H I ©
EL
}
};
O U
LM
obj.direBonjour();
r
Il faut utiliser l’opérateur this e f E
ch
var obj = {
nom: "wick", ©A
prenom: "john",
direBonjour: function (){
console.log("bonjour " + this.nom);
}
};
obj.direBonjour();
H & H: Research and Training 102 / 143
Objets Constructeurs
JavaScript
Constructeurs ?
Besoin d’un moule pour créer des objets (comme les classes en
H I ©
Java, C#, PHP...)
U EL
O
LM
Tous les objets JS sont de type Object
r e f E
Il est possible de créer ou de cloner un objet a‘ partir d’un autre en
A ch
utilisant des méthodes d’Object
©
Et si on veut créer un modèle d’objet (comme la classe), on peut
utiliser les constructeurs
JavaScript
Déclarer un constructeur d’objet
var Personne = function(nom,prenom){
this.nom = nom;
this.prenom = prenom;
}
H I ©
U EL
O
f E LM
ch r e
©A
JavaScript
Déclarer un constructeur d’objet
var Personne = function(nom,prenom){
this.nom = nom;
this.prenom = prenom;
}
H I ©
U EL
O
f E LM
Explication
ch r e
©A
Un constructeur d’objet permettant d’initialiser la valeur de deux
attributs nom et prenom
L’appel de ce constructeur avec l’opérateur new permet de créer
plusieurs objets ayant tous les attributs nom et prenom
C’est comme une classe dans un LOO à classes
JavaScript
H I ©
U EL
O
f E LM
ch r e
©A
JavaScript
H I ©
U EL
Afficher les valeurs d’un objet O
console.log(perso);
f E LM
ch r e
©A
JavaScript
H I ©
U EL
Afficher les valeurs d’un objet O
console.log(perso);
f E LM
ch r e
©A
Pour vérifier qu’il s’agit bien d’un objet
console.log(typeof perso);
JavaScript
JavaScript
JavaScript
JavaScript
JavaScript
Pareillement pour les méthodes
Personne.prototype.getAge = function(){
return this.age;
}
H I ©
EL
Personne.prototype.setAge = function(age){
U
this.age = age;
L MO
}
r e f E
A ch
©
JavaScript
Pareillement pour les méthodes
Personne.prototype.getAge = function(){
return this.age;
}
H I ©
EL
Personne.prototype.setAge = function(age){
U
this.age = age;
L MO
}
r e f E
A ch ajoutées
Appeler les méthodes
©
perso.setAge(45);
console.log(perso.getAge());
JavaScript
Pareillement pour les méthodes
Personne.prototype.getAge = function(){
return this.age;
}
H I ©
EL
Personne.prototype.setAge = function(age){
U
this.age = age;
L MO
}
r e f E
A ch ajoutées
Appeler les méthodes
©
perso.setAge(45);
console.log(perso.getAge());
Remarque
Ne jamais modifier le prototype d’un objet prédéfini.
H & H: Research and Training 108 / 143
Objets et méthodes prédéfinis
JavaScript
Objets prédéfinis
H I ©
Math : contenant de méthodes permettantE
U Lréaliser des
de
MO
opérations mathématiques sur les nombres
L
e f E des dates
Date : permet de manipuler
r
A ch
...
©
JavaScript
JavaScript
Créer et afficher un objet date
var date = new Date();
console.log(date);
// affiche la date complète du jour
H I ©
UEL
O
f E LM
ch r e
©A
JavaScript
Créer et afficher un objet date
var date = new Date();
console.log(date);
// affiche la date complète du jour
H I ©
ELètre (les mois sont
Créer une date à partir de valeurs passées en param
U
codés de 0 à 11)
L MO
console.log(date); ref
E
var date = new Date(1985,7,30,5,50,0,0);
JavaScript
Créer et afficher un objet date
var date = new Date();
console.log(date);
// affiche la date complète du jour
H I ©
ELètre (les mois sont
Créer une date à partir de valeurs passées en param
U
codés de 0 à 11)
L MO
console.log(date); ref
E
var date = new Date(1985,7,30,5,50,0,0);
JavaScript
Exemple de méthodes pour les dates
getSeconds() : c
e
hr les secondes [0-59]
© A retourne
JavaScript
Exemple de méthodes pour les dates
getSeconds() : c
e
hr les secondes [0-59]
© A retourne
On peut aussi modifier les attributs de l’objet Date en utilisant les set.
H & H: Research and Training 112 / 143
Opérateurs
JavaScript
Quelques opérateurs
typeof : pour obtenir le type d’une variable
new : pour créer un objet en utilisant un constructeur
H I ©
this : pour désigner l’objet courant
UEL
O
f E LM
ch r e
©A
JavaScript
Quelques opérateurs
typeof : pour obtenir le type d’une variable
new : pour créer un objet en utilisant un constructeur
H I ©
this : pour désigner l’objet courant
UEL
O
f E LM
Autres opérateurs
ch r e
in ©A
delete
instanceof
...
JavaScript
L’opérateur in
H I ©
Il permet de tester si
U EL
O
f E LM
un indice est dans le tableau (inférieur à la taille de ce dernier)
r e
une méthode appartient à un objet
ch
... ©A
JavaScript
Exemple avec un tableau
var tab = [2,3,5];
if (2 in tab)
console.log("oui");
// affiche oui
H I ©
U EL
O
f E LM
ch r e
©A
JavaScript
Exemple avec un tableau
var tab = [2,3,5];
if (2 in tab)
console.log("oui");
// affiche oui
H I ©
Exemple avec un objet de type chaı̂ne de caractère EL
var str = new String("bonjour");
M OU
console.log("oui"); ef
if ("length" in str)
E L
// affiche oui
A chr
©
JavaScript
Exemple avec un tableau
var tab = [2,3,5];
if (2 in tab)
console.log("oui");
// affiche oui
H I ©
Exemple avec un objet de type chaı̂ne de caractère EL
var str = new String("bonjour");
M OU
console.log("oui"); ef
if ("length" in str)
E L
// affiche oui
A chr
©
Exemple avec un autre type d’objet
var perso = { nom: ’wick’, prenom: ’john’ };
if ("nom" in perso)
console.log("oui");
// affiche oui
JavaScript
L’opérateur delete
Il permet de supprimer
H I ©
U EL
une variables non déclarée explicitement (avec var)
O
un attribut d’objet
f E LM
ch r e
un élément de tableau
©A
retourne true si la suppression se termine correctement, false
sinon.
JavaScript
Exemple avec une variable de type object
perso = { nom: ’wick’, prenom: ’john’ };
console.log(perso);
// affiche { nom: ’wick’, prenom: ’john’ }
delete perso.prenom ;
console.log(perso);
H I ©
EL
// affiche { nom: ’wick’ }
O U
f E LM
ch r e
©A
JavaScript
Exemple avec une variable de type object
perso = { nom: ’wick’, prenom: ’john’ };
console.log(perso);
// affiche { nom: ’wick’, prenom: ’john’ }
delete perso.prenom ;
console.log(perso);
H I ©
EL
// affiche { nom: ’wick’ }
O U
f E LM
Ceci génère une erreur car l’objet a été supprimé
r e
perso = { nom: ’wick’, prenom: ’john’ };
ch
©A
delete perso;
console.log(perso);
JavaScript
Exemple avec une variable de type object
perso = { nom: ’wick’, prenom: ’john’ };
console.log(perso);
// affiche { nom: ’wick’, prenom: ’john’ }
delete perso.prenom ;
console.log(perso);
H I ©
EL
// affiche { nom: ’wick’ }
O U
f E LM
Ceci génère une erreur car l’objet a été supprimé
r e
perso = { nom: ’wick’, prenom: ’john’ };
ch
©A
delete perso;
console.log(perso);
JavaScript
L’opérateur instanceof
H I ©
U EL
O
f E LM
ch r e
©A
JavaScript
L’opérateur instanceof
H I ©
U EL
O
Exemple
f E LM
ch r
var jour = new Date(2019, 06, 06); e
©A
if (jour instanceof Date) {
console.log("oui");
}
// affiche oui
JavaScript
Une constante
H I ©
UEL
O
f E LM
ch r e
©A
JavaScript
Une constante
JavaScript
Une constante
JavaScript
Une constante
PI = 5;
JavaScript
Considérons l’objet suivant déclaré avec le mot-clé const
const obj = {
nom: "wick",
prenom: "john"
};
H I ©
U EL
O
f E LM
ch r e
©A
JavaScript
Considérons l’objet suivant déclaré avec le mot-clé const
const obj = {
nom: "wick",
prenom: "john"
};
H I ©
EL
L’instruction suivante lève une exception (Uncaught TypeError: Assignment to
U
constant variable)
O
obj = {};
f E LM
ch r e
©A
JavaScript
Considérons l’objet suivant déclaré avec le mot-clé const
const obj = {
nom: "wick",
prenom: "john"
};
H I ©
EL
L’instruction suivante lève une exception (Uncaught TypeError: Assignment to
U
constant variable)
O
obj = {};
f E LM
ch r e
©A
Cependant, l’instruction suivante est correcte et ne lève donc pas d’exception
obj.nom ="travolta";
obj[’prenom’] = "denzel";
obj.age = 50;
console.log(obj);
// affiche {nom: "travolta", prenom: "denzel", age: 50}
JavaScript
Idem pour les tableaux
const tableau = [2, 3, 8];
H I ©
UEL
O
f E LM
ch r e
©A
JavaScript
Idem pour les tableaux
const tableau = [2, 3, 8];
JavaScript
Idem pour les tableaux
const tableau = [2, 3, 8];
console.log(tableau);
// affiche [9, 3, 1]
JavaScript
Considérons la fonction suivante
function produit (a, b) {
return a * b;
}
H I ©
UEL
O
f E LM
ch r e
©A
JavaScript
Considérons la fonction suivante
function produit (a, b) {
return a * b;
}
H I ©
UEL
MO
Appeler la fonction avec des nombres donne le résultat suivant
L
r e f
console.log(produit (2, E3));
// affiche 6
A ch
©
JavaScript
Considérons la fonction suivante
function produit (a, b) {
return a * b;
}
H I ©
UEL
MO
Appeler la fonction avec des nombres donne le résultat suivant
L
r e f
console.log(produit (2, E3));
// affiche 6
A ch
©
Appeler la fonction avec un nombre et une chaı̂ne de caractère
donne le résultat suivant
console.log(produit (2, "a"));
// affiche NaN
H & H: Research and Training 122 / 143
Exceptions
JavaScript
On peut lancer une exception si un des paramètres n’est pas de type number
function produit (a, b) {
if (isNaN (a) || isNaN (b))
throw "Les paramètres doivent être de type number";
return a * b;
}
H I ©
UEL
O
f E LM
ch r e
©A
JavaScript
On peut lancer une exception si un des paramètres n’est pas de type number
function produit (a, b) {
if (isNaN (a) || isNaN (b))
throw "Les paramètres doivent être de type number";
return a * b;
}
H I ©
EL
M OU
f E
L’appel de la fonction doit être entourLé par un bloc try ... catch pour
h r e
capturer et traiter l’éventuelle
c
exception lancée
try {
©A
console.log(produit (2, "a"));
}
catch(e) {
console.error(e);
}
JavaScript
H I ©
Les paramètres doivent être de type number
UEL
O
f E LM
ch r e
©A
JavaScript
H I ©
Les paramètres doivent être de type number
UEL
O
f E LM
Remarque
ch r e
©A
On peut lancer une exception de type string, number, boolean...
JavaScript
reste du code
H I ©
Le compilateur commence par lire toutes les déclarations, ensuite il traite le
U EL
O
Les constantes et les variables déclarées avec let ne supporte pas le hoisting
f E LM
ch r e
©A
JavaScript
reste du code
H I ©
Le compilateur commence par lire toutes les déclarations, ensuite il traite le
U EL
O
Les constantes et les variables déclarées avec let ne supporte pas le hoisting
f E LM
ch r e
©A
Malgré l’utilisation du mode strict, l’affichage d’une variable non-déclarée ne
génère pas d’erreur grâce à la remontée
"use strict";
x = 7;
console.log(x);
var x;
JavaScript
Expressions régulières
f E LM
remplacement, le calcul de nombre d’occurrences...)
ch r e
permettent de vérifier si des chaı̂nes de caractères respectent
©A
certains formats (email, numéro de téléphone...)
syntaxe plus ou moins proche pour tous les langages de
programmation
JavaScript
H I ©
chaine2 contient chaine1, false sinon. U EL
chaine1.test(chaine2) : permet de chercher et retourner true si
M O
E
chaine1.replace(chaine2, chaine3)
f L par chaine3
: permet de remplacer la première
c h re
occurrence de chaine2 dans chaine1
retourner©
A
chaine1.exec(chaine2) : permet de chercher chaine1 dans chaine2 et
un objet contenant plusieurs données sur la recherche (position de la
première occurrence, chaı̂ne recherchée...).
JavaScript
Recherche d’une sous-chaı̂ne dans une chaı̂ne de caractère
var str = "Bonjour tout le monde";
var pos = str.search("tout");
console.log(pos); // affiche 8
H I ©
UEL
O
f E LM
ch r e
©A
JavaScript
Recherche d’une sous-chaı̂ne dans une chaı̂ne de caractère
var str = "Bonjour tout le monde";
var pos = str.search("tout");
console.log(pos); // affiche 8
H I ©
U
Recherche avec une expression régulière insensibleEà laLcasse
var str = "Bonjour tout le monde";
L MO
e f
var pos = str.search(/Tout/i);
r E
console.log(pos); //
A ch affiche 8
JavaScript
Recherche d’une sous-chaı̂ne dans une chaı̂ne de caractère
var str = "Bonjour tout le monde";
var pos = str.search("tout");
console.log(pos); // affiche 8
H I ©
U
Recherche avec une expression régulière insensibleEà laLcasse
var str = "Bonjour tout le monde";
L MO
e f
var pos = str.search(/Tout/i);
r E
console.log(pos); //
A ch affiche 8
©
Retourne -1 si la sous-chaı̂ne n’existe pas
var str = "Bonjour tout le monde";
var pos = str.search(/c/i);
console.log(pos); // affiche -1
JavaScript
f
var result = str.test("ababaabbaaab");
r e E
ch
console.log(result); // affiche true
©A
JavaScript
JavaScript
JavaScript
JavaScript
Pour trouver toutes les occurrences avec exec, il faut utiliser une
boucle et ajouter le paramètre g
var chaine = "ababaabbaaab";
var str = /AA/gi;
H I ©
var resultat;
UEL
while (resultat = str.exec(chaine)) { O
E
console.log("motif recherché : " + resultat
f LM
[0]);
ch r e
©A
console.log("indice de la première
occurrence : " + resultat.index);
console.log("texte complet : " + resultat.
input);
}
JavaScript
JavaScript
Contraintes exprimées avec les expressions régulières
a+ : 1 ou plusieurs a
a* : 0 ou plusieurs a
a? : 0 ou 1 a
H I ©
consécutives
UEL
a{n, m} : minimum n occurrences de a consécutives, maximum m occurrences de a
O
f E LM
a{n} : exactement n occurrences de a consécutives
ch r e
a{n, } : minimum n occurrences de a consécutives
©A
JavaScript
Contraintes exprimées avec les expressions régulières
a+ : 1 ou plusieurs a
a* : 0 ou plusieurs a
a? : 0 ou 1 a
H I ©
consécutives
UEL
a{n, m} : minimum n occurrences de a consécutives, maximum m occurrences de a
O
f E LM
a{n} : exactement n occurrences de a consécutives
ch r e
a{n, } : minimum n occurrences de a consécutives
©A
var str = /ba?c/i;
console.log(str.test("bac")); // true
JavaScript
Contraintes exprimées avec les expressions régulières
a+ : 1 ou plusieurs a
a* : 0 ou plusieurs a
a? : 0 ou 1 a
H I ©
consécutives
UEL
a{n, m} : minimum n occurrences de a consécutives, maximum m occurrences de a
O
f E LM
a{n} : exactement n occurrences de a consécutives
ch r e
a{n, } : minimum n occurrences de a consécutives
©A
var str = /ba?c/i;
console.log(str.test("bac")); // true
JavaScript
a | b : a ou b
H I ©
EL
ˆ : commence par
$ : se termine par O U
f E LM
() : le groupe
ch r e
©A
a(?!b) : a non suivi de b
a(?=b) : a suivi de b
(?<!a)b : b non précédé par a
JavaScript
Contraintes exprimées avec les expressions régulières
JavaScript
JavaScript
JavaScript
Exercice 1
I ©
Trouver une expression régulière qui permet de déterminer si une
H
chaı̂ne de caractère contient 3 occurrences (pas forcement
UEL
consécutives) de la sous-chaı̂ne ab. O
true pour abacccababcc f E LM
ch r e
true pourA
abababccccab
©
false pour baaaaabaccccba
JavaScript
Exercice 2
Trouver une expression régulière qui permet de déterminer si une
chaı̂ne commence par la lettre a, se termine par la lettre b et pour
H I ©
chaque x suivi de y (pas forcement consécutives), il existe un z situé
entre x et y.
UEL
O
true pour ab
f E LM
true pour abxyb
ch r e
©A
true pour abxazyb
false pour abxuyb
false pour abxazyxyb
JavaScript
Exercice 3
Trouver une expression régulière qui permet de déterminer si une
H I ©
EL
chaı̂ne de caractère correspond à une adresse e-mail.
O U
f E LM
ch r e
©A
JavaScript
Exercice 3
Trouver une expression régulière qui permet de déterminer si une
H I ©
EL
chaı̂ne de caractère correspond à une adresse e-mail.
O U
f E LM
ch r e
©A
Exercice 4
Trouver une expression régulière qui permet de déterminer si une
chaı̂ne de caractère correspond à un numéro de téléphone français.
JavaScript
Quelques erreurs JavaScript
JavaScript
r e f E
Placer un espace avant et après chaque opérateur ou accolade
ch
©A
Bien indenter son code et ne pas utiliser la touche de tabulation
Ne pas dépasser 80 caractères par ligne
JavaScript