-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathjavascript-01-bases.js
More file actions
129 lines (72 loc) · 2.74 KB
/
Copy pathjavascript-01-bases.js
File metadata and controls
129 lines (72 loc) · 2.74 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
// FONCTIONS FLECHEES
// Remplacer les définitions de fonctions par des fonctions fléchées
// Ex 1 : qui renvoie une valeur, sans paramètre
let exo1 = function () { return 1 }; // à remplacer
exo1(); // renvoie 1
// Ex 1 : qui renvoie une valeur, avec paramètres
let exo2 = function (a, b) { return a + b }; // à remplacer
exo2(3, 4); // renvoie 7
// Ex 3 : avec paramètres, effectue plusieurs traitements ou ne renvoie rien : accolades nécessaires
let exo3 = function (a, b) { let c = a + b; console.log(c); }; // à remplacer
exo3(5, 4); // affiche 9
// Ex 4 : avec paramètres, effectue plusieurs traitements ou ne renvoie rien : accolades nécessaires
[1, 2, 8, 4, 9].filter(function (x) { return x > 5; }); // à remplacer
// -------------------------------------------------------
// SPREAD
// Utilisez l'opérateur "spread" pour pouvoir utiliser un array en tant que plusieurs paramètre
let mesures = [1, 4, 3];
let volume = (longueur, largeur, profondeur) => longueur * largeur * profondeur;
volume(mesures); // à adapter
Math.max(mesures); // à adapter
// -------------------------------------------------------
//CONSTRUCTION DE STRING
// utiliser la constructio avec ` ` pour réécrire la string chaine
const nom = "Victor"
const bonus = 1;
const base = 2;
let chaine = "Bienvue " + nom + "!\n" +
"Vous avez obtenu " + "base " + "point(s) et " +
bonus + " point(s) bonus.\nSoit un total de : " + (1 + 2) + ".";
// -------------------------------------------------------
// -------------------------------------------------------
// OBJETS
// Exercice 1 :
// Ajouter une méthode surface à cet objet qui renvoie la surface
let rectangle1 = {
longueur: 2,
largeur: 3
}
// ... A compléter ...
rectangle.surface() // => renvoie 6
// Exercice 2 :
// Ajouter une méthode surface au prototype de Rectangle
// pour que les deux objet créés avec le constructeur Rectangle en bénéficient
function Rectangle(longueur, largeur) {
this.longueur = longueur;
this.largeur = largeur;
}
let rectangle2 = new Rectangle(5, 4);
let rectangle3 = new Rectangle(6, 2);
// ... A compléter ...
rectangle2.surface(); // => renvoie 20
rectangle3.surface(); // renvoie 12
// Pour info
// Autre possibilité plus récente pour créer un objet.
// Potentiellement intéressante pour les développeurs provenant d'autre langages OO.
class Carre {
constructor(cote)
{
this.cote = cote;
}
}
let carre1 = new Carre(3);
// -------------------------------------------------------
// BIND
personne = {
prenom: "tata",
nom: "toto"
}
function direCoucou(message) {
alert(`${message} ${this.nom}`);
}
setTimeout(direCoucou, 2000); // adapter avec bind pour lier une instance et un paramètre