-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathCours javasript.js
More file actions
6413 lines (4444 loc) · 202 KB
/
Cours javasript.js
File metadata and controls
6413 lines (4444 loc) · 202 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
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
A quoi sert le JavaScript ?
Permettre à des sites web de répondre aux actions des utilisateurs
Écrire des applications et des jeux (ex. blackjack)
Accéder à des informations sur internet (ex. trouver les mots "Tendance" sur Twitter par thème)
Organiser et présenter des données (ex. automatiser des feuilles de calcul, visualiser des données)
Quelle est la longueur de votre nom ?
"Amélie".length résultat 6
maths de base on peut taper une opération et le résultat saffiche
Il y a certaines choses que vous ne pouvez pas faire dans la console.
Les ordinateurs ne peuvent parler que certains langages, comme celui que vous avez utilisé aujourd'hui : le JavaScript !
Si vous utilisez des mots qui n'existent pas dans le langage JavaScript, lordinateur va être perdu et renverra une erreur.
Maintenant, vous voyez deux lignes commençant par //.
Le signe // sert à commenter.
Un commentaire est une ligne de texte que JavaScript n'essaiera pas d'analyser en tant que code.
Il sert simplement à vous guider dans la lecture du code.
// Ceci est un commentaire que l'ordinateur va ignorer.
// C'est seulement pour vos yeux !
confirm('Bonjour !') le JavaScript est intéractif et répond true
confirm("Je me sens trop bien !");
confirm("Je suis prêt à partir.");
confirm("Etes vous sur de vouloir quitter");
Ces boîtes peuvent être utilisées sur les sites internet
pour confirmer des choses auprès de lutilisateur.
Vous en avez probablement vu apparaître
lorsque vous essayiez de supprimer des choses importantes ou
quitter un site internet en laissant des changements non sauvegardés.
Qu'est ce que la programmation ?
Programmer, c'est comme écrire une liste d'instructions à l'ordinateur
pour qu'il fasse des choses cool avec vos commandes.
Les programmes ne peuvent pas faire le café, mais ils peuvent faire des maths,
conserver des informations sur votre compte, ou envoyer un message à un ami.
Pour faire n'importe laquelle de ces actions,
les programmes ont besoin de données en entrée. Vous pouvez demander cette entrée grâce à la commande prompt.
Exemples :
prompt("Quel est votre nom ?");
prompt("Qu'est ce qu' Ubuntu ?");
2 boites de dialogue se sont ouvert avec les 2 question (de lespace que répondre) et Js a afficher la 2ème réponse
"je ne sais pas"
Les chaînes de caractères de type de données I (e.g. "Les chiens aboient !")
Les nombres type de données II (e.g. 4, 10)
Les booléens type de données III (e.g. false, 5 > 4)
Types de données I & II : nombres et chaînes de caractères
Les données existent sous différentes formes, différents types. Vous en avez déjà utilisé deux !
a. Les nombres sont des quantités, comme vous en avez lhabitude. Vous pouvez faire des maths avec eux.
b. Les chaînes de caractères peuvent être des lettres a-z, des espaces et même des nombres.
Les exemples suivants sont des chaînes de caractères : "Ryan", "4", et "Quel est ton nom ?".
Les chaînes de caractères sont beaucoup utilisées en tant quétiquettes, noms, et contenus dans votre programmes.
Pour travailler sur un nombre dans votre code, écrivez simplement un nombre sans guillemets : 42, 190.12334.
Pour travailler sur une chaîne de caractères, entourez-la de guillemets : "Quel est votre nom ?"
Type de données III : les booléens
Bon travail ! Maintenant, passons aux booléens. Un booléen est soit true (vrai), soit false (faux).
Par exemple, comparer deux nombres retourne une réponse true ou false :
23 > 10 est true
5 < 4 est false
"je code comme un champion".length > 10
JS di que cest vrai "true"
Utiliser console.log
Vous avez peut-être remarqué que l'interpréteur n'affiche pas tout ce qu'il fait.
Donc si nous voulons savoir ce qu'il pense, nous avons parfois besoin de lui demander de nous parler.
console.log() prendra tout ce qui est entre ses parenthèses et va lafficher dans la console sous votre code.
console.log(2 * 5) js affiche 10
console.log("salut") js affiche salut
Liste des opérateurs de comparaison:
> Plus grand que
< Plus petit que
<= Plus petit ou égal à
>= Plus grand ou égal à
=== égal à (est ce que cest egal pr lordinateur)
!== Différent de
= assignation
descision, descision
Maintenant voyons comment nous pouvons utiliser les comparaisons pour poser des questions fermées.
Imaginons que nous voulions écrire un programme qui demande si notre nom compte plus de 7 lettres.
Si la réponse est oui, nous pouvons répondre par "Vous avez un long nom !". Nous pouvons le faire grâce à une déclaration if.
if( "monNom".length > 7) {
console.log("Vous avez un long nom !");
}
Une déclaration if est construite grâce au mot-clé if,
une condition comme nous l'avons vu plus tôt, et une paire d'accolades { }.
Si la réponse à la condition est vraie, le code à lintérieur des accolades sera exécuté.
if ( "alexandre".length > 8) {
console.log("le nom est long" );
}
js a afficher le nom est long
Les ordinateurs sont malins
Bien ! Nous avons utilisé une déclaration if pour faire quelque chose si la réponse à la condition était vraie,
ou true comme on dit en JavaScript.
En plus de faire quelque chose quand la condition est true,
nous pouvons faire quelque chose dautre si la condition est fausse, ou false.
Si votre nom compte moins de 7 lettres, nous pouvons vous répondre "Vous avez un nom court !".
Nous pouvons le faire en utilisant une déclaration if/else :
if( "monNom".length >= 7 ) {
console.log("Vous avez un long nom !");
}
else {
console.log("Vous avez un nom court !");
}
Comme avant, si (if) la condition est vraie (true), alors seul le code à lintérieur des premières accolades sera exécuté.
Sinon (else), la condition est fausse (false),
donc seul le code à l'intérieur de la seconde paire d'accolades (après le mot-clé else) sera exécuté.
Dans lexemple ci-dessus, la condition "monNom".length >= 7 vaut false puisque "monNom" a seulement 6 lettres.
Puisque la condition est false,
seul le code à lintérieur des accolades après le mot-clé else sera exécuté, et affichera "Vous avez un nom court !"
ex:
if ( "si le premier est plus court".length <= 15)
{
console.log("Prenons le premier chemin !");
}
else
{
console.log("Prenons plutôt le second chemin !");
}
js a afficher le second message après else prenons plutot le second chemin
Les ordinateurs ne sont pas bien malins
Bien joué ! Bon, les ordinateurs ont une compréhension très littérale.
La syntaxe doit être exactement à la bonne place pour que lordinateur comprenne le code.
Comme vous commencez en programmation, nous allons vous apprendre beaucoup de règles de syntaxe.
C'est en quelque sorte la grammaire des langages de programmation.
La grammaire d'abord, ensuite on passe à la poésie de la programmation !
// L'ordinateur ne se soucie pas des espaces entre les mots ou entre les crochets
// L'ordre des mots, en revanche, est important,
// ainsi que la correcte utilisation des caractères (){}[]"";
// Pour un peu plus d'aide, un programme appelé un 'linter' vérifie votre code
// et affiche un 'x' rouge à côté de la première ligne qui contient des erreurs
1. Confirm et prompt
Nous pouvons faire apparaître une boîte (un "pop-up") !
confirm("Je vais bien");
prompt("Allez-vous bien ?");
2. Les types de données
a. Les nombres (ex. 4.3, 134)
b. Les chaînes de caractères (ex. "Les chiens aboient", "Expert JavaScript")
c. Les booléens (ex. false, 5 > 4)
3. Les conditions
Si (if) une première condition est remplie, exécuter le premier bloc de code.
Si elle nest pas remplie, exécuter le code du bloc else. Regardez le code sur la droite pour un autre exemple.
Maths
On a déjà vu les maths de base.
Les symboles mathématiques que nous avons appris à l'école fonctionnent ici.
Même l'ordre dans lequel l'ordinateur les comprend est le même que celui que nous avons appris à l'école !
Code:
( ): contrôle lordre des opérations
* et /: multiplication et division
- et +: soustraction et addition
Exemples:
100/10 vaut 10
"Jane".length + 5 vaut 9
5*(3+1) vaut 20
if ("Jon".length * 2 / (2+1) === 2) {
console.log("La réponse est logique !");
} else {
console.log("Error Error Error");
}
Les maths et le modulo
Voyons un symbole intéressant appelé le modulo. Quand % est placé entre deux nombre,
l'ordinateur va diviser le premier nombre par le second et retourner le reste de cette division.
Donc si nous faisons 23 % 10, nous divisons 23 par 10, ce qui fait 2 et un reste de 3. Donc 23 % 10 vaut 3.
Plus d'exemples :
17 % 5 vaut 2 car 3X5 = 15, 17-15=2, donc il reste 2
13 % 7 vaut 6 car 1X7 = 7, 13-7=6, donc il reste 6
console.log(14 % 3) JS affiche 2 car 14-(3X4)=2
console.log(99 % 8) JS affiche 3 car 99-(8X12)=3
console.log(11 % 3) JS affiche 2 car 11-(3X3)=2
Modulo et if / else
Alors pourquoi apprendre le modulo ? Ils servent principalement à tester la division.
Imaginez 30 % 10. Qu'est-ce qui sera retourné ? Il n'y a aucun reste, donc 0.
Et 9 % 3, alors ? 0 aussi.
Nous pouvons utiliser les modulos dans des comparaisons, comme ceci :
10 % 2 === 0 vaut true
7 % 3 === 0 vaut false puisqu'il reste 1.
Sous-chaînes
Nous avons appris quelques moyens de manipuler les nombres. Et qu'en est-il de la manipulation de chaînes de caractères ?
Parfois, vous ne voudrez pas affichez la chaîne entière, mais seulement une partie de celle-ci.
Par exemple, vous pouvez configurer votre boîte de réception Gmail
pour nafficher que les 50 premiers caractères de chaque message, afin de les prévisualiser.
Cette prévisualisation est en fait une sous-chaîne ("substring" en anglais) de la chaîne de base (le message entier).
Code:
"un mot".substring(x, y), où x est l'endroit où vous commencez à couper et y l'endroit
où vous terminez de découper la chaîne originale.
La partie du code contenant les nombres est un peu bizarre. Pour sélectionner le "bo" de "bonjour", vous devrez écrire ceci :
"bonjour".substring(0,2);
Chaque caractère dans une chaîne est numéroté en partant de 0, comme ceci :
0 1 2 3 4 5 6 7
| | | | | | | | |
b o n j o u r
La lettre b est en position 0, la lettre o en position 1, etc...
Donc si vous commencez à la position 0, et coupez jusquà la position 2, il ne vous reste que le bo
Plus dexemples:
Les trois premières lettres de "Batman" "Batman".substring(0,3);
Les lettres 4 à 6 de "portable" "portable".substring(3,6);
après la doc dit "This method extracts the characters in a string between "start" and "end", not including "end" itself."
ça veut dire que si ta fin c'est 6, ça s'arrête au caractère précédent,
donc en l'occurrence le 5ème, même comme on commence à compter à 0, ça fait le 6ème
dans (3,6), c'est 3 inclus, 6 exclus, en gros
// Utilisez console.log( ) pour afficher les sous-chaînes
// Voici un exemple avec les lettres de 1 à 4 de "JavaScript" :
// console.log("JavaScript".substring(0,4));
Les variables
Nous avons appris à faire pas mal de choses, maintenant :
créer des chaînes de caractères, trouver leur longueur, trouver le caractère à la n-ième position,
faire des mathématiques de base. Pas mal pour une première journée de travail !
Pour faire du développement plus complexe,
nous allons avoir besoin d'un moyen de 'sauvegarder les données de notre code.
Nous pouvons le faire en définissant une variable avec un nom spécifique,
et dans lequel les lettres minuscules ou majuscules importent.
Une fois que vous avez créé (ou déclaré) une variable ayant un nom particulier,
vous pouvez appeler cette valeur en écrivant le nom de la variable.
Code:
var nomVariable = donnee;
Exemple:
a. var monNom = "Leng";
b. var monAge = 30;
c. var isOdd = true;
// Pour créer une variable,nous utilisons un seul signe égal
// Mais pour vérifier que deux valeurs sont égales, nous en utilisons 3
Plus d'entraînement sur les variables
Nous avons vu comment créer une variable.
Mais comment l'utiliser ? Il est utile de penser que chaque fois que vous entrez le nom de la variable,
vous demandez à l'ordinateur de remplacer le nom de la variable par la valeur de cette variable.
Par exemple
var monNom = "Steve Jobs";
monNom.substring(0,5)
Regardez la seconde ligne de code ci-dessus. Vous avez demandé à l'ordinateur de remplacer monNom par Steve Jobs, donc
monNom.substring(0,5) devient "Steve Jobs".substring(0,5) qui vaut "Steve".
Un autre exemple
var monAge = 120;
Que vaut monAge % 12 ? Regardez lindice pour vérifier votre réponse.
Donc la variable enregistre la valeur de la variable, que ce soit un nombre ou une chaîne de caractères.
Comme vous allez vite le voir, cela permet d'écrire des programmes beaucoup plus facilement !
Changement de valeur des variables
Jusqu'ici, nous avons vu
a. Comment créer une variable
b. Comment utiliser une variable
Voyons maintenant comment changer la valeur d'une variable.
La valeur d'une variable est facilement modifiable.
Faites simplement comme si vous étiez en train de créer une nouvelle variable en utilisant le même nom que la variable existante !
Exemple:
var monAge = "Trente";
Imaginons que mon anniversaire soit passé et que je veuille changer mon age.
monAge = "Trente et un";
Maintenant, la valeur de monAge est "Trente et un" !
// Sur la ligne 2, déclarez une variable monNom et donnez-lui votre nom pour valeur.
var monNom = "Amélie"; Js affiche Amélie
// Sur la ligne 4, utilisez console.log pour afficher la variable monNom.
console.log(monNom);
// Sur la ligne 7, changez la valeur de votre nom pour qu'elle ait seulement les 2
//premières lettres de votre nom.
monNom = monNom.substring(0,2); JS affiche Am
// Sur la ligne 9, utilisez console.log pour afficher la variable monNom.
console.log(monNom);
Conclusion : Partie 1
Faisons une rapide révision !
Types de données
chaînes de caractères (ex. "les chiens aboient !")
nombres (ex 4, 10)
booléens (ex. false, 5 > 4)
Variables
Nous enregistrons les valeurs des données dans des variables.
Nous pouvons retrouver les valeurs de ces variables en écrivant leur nom.
Manipuler des nombres et des chaînes de caractères
Comparaisons (ex. >, <=)
Modulo (%)
Longueurs des chaînes de caractères (ex. "Emilie".length;)
Sous-chaînes (ex. "Salut".substring(0, 1);)
console.log( )
Affiche dans la console tout ce qu'on lui envoie entre parenthèses.
Conclusion : Partie 2
Félicitations: vous êtes arrivé jusqu'ici ! Vous avez appris beaucoup de choses !
Encore un exercice de plus, et après on vous fait un câlin !
La dernière chose un peu compliquée que vous aviez apprise était les déclarations if / else.
Les déclarations if / else sont des déclarations conditionnelles.
Selon que les conditions sont respectées ou non, lordinateur fait des choses différentes.
// Vérifiez que l'utilisateur est prêt à jouer !
confirm("Je suis prêt à jouer !");
var age = prompt("Quel est votre âge");
if (age<13) {
console.log("Vous êtes autorisés à jouer mais nous nous dégageons de toute responsabilité");
} else {
console.log("C'est parti");
}
console.log("Vous êtes à un concert de Justin Bieber, et vous entendez la chanson 'Lace my shoes off, start racing!'");
console.log("Soudain, Justin Bieber s'arrête et dit : 'Qui veut faire la course avec moi ?' ");
var reponseUtilisateur = "Voulez-vous faire la course avec Justin Bieber sur scène ?"
var course = prompt(reponseUtilisateur);
if (course === "oui") {
console.log("Vous et Bieber commencez à courir. C'est serré ! Vous gagnez d'un cheveu !");
} else {
console.log("Oh non ! Bieber bouge sa tête et chante 'J'ai fixé le rythme, donc je peux courir sans me presser.'");
}
var retour = prompt("notez moi sur 10");
if (retour > 8) {
console.log("Merci! On devrait faire la course au prochain concert !");
} else {
console.log("Je vais continuer à m'entraîner à coder et à faire la course");
}
Introduction aux fonctions
La programmation, c'est comme cuire des gâteaux.
Sérieusement ! Imaginez que vous essayiez d'apprendre à votre amie Jacqueline comment faire cuire différents gâteaux.
Chaque gâteau prend différents ingrédients (ce sont les entrées).
Mais les instructions 'cuire' sont toujours les mêmes. Par exemple :
Pré-chauffer le four à 300 degrés
Mélanger tous les ingrédients dans un bol
Mettre au four pendant 30 minutes
Et la sortie sera un gâteau différent à chaque fois.
C'est ennuyeux de devoir répéter à chaque fois à Jacqueline les mêmes instructions 'cuire'.
Et si nous pouvions simplement dire 'cuire' pour que Jacqueline sache comment exécuter ces trois étapes ?
C'est exactement ce que fait une fonction !
Instructions :
La ligne 3 déclare la fonction et lui donne un nom.
Concentrez vous sur les lignes 4 et 5.
Le code à l'intérieur des accolades { } est le code que vous voudrez réutiliser (par exemple les instructions 'cuire').
La ligne 4 déclare une variable appelé val.
La ligne 5 affiche la valeur de cette variable.
Dans les lignes 8 à 11, nous expliquons ce que veut dire appeler une fonction.
A la ligne 12, remplacez le 6 par n'importe quel nombre et cliquez sur Vérifier vos réponses.
Faites-le plusieurs fois pour découvrir la beauté des fonctions !
Cf instructions ci-dessus
// Voilà ce à quoi ressemble une fonction :
var diviseParTrois = function(nombre) {
var val = nombre / 3;
console.log(val);
};
// A la ligne 12, nous appelons la fonction par son nom.
// Ici, elle est appelée 'divisepartrois'.
// Nous donnons à l'ordinateur que le nombre en entrée (6, par exemple)
// L'ordinateur exécute ensuite le code à l'intérieur de la fonction
diviseParTrois(13);
La syntaxe des fonctions
Une fonction prend une entrée, fait quelque chose avec, et produit une sortie.
Voici un exemple de fonction :
var disBonjour = function(nom) {
console.log('Bonjour ' + nom);
};
Premièrement nous déclarons une fonction en utilisant var,
puis nous lui donnons un nom : disBonjour.
Le nom devrait toujours commencer par une lettre minuscule et
la convention est d'utiliser le lowerCamelCase où chaque mot (excepté le premier) commence par une lettre majuscule.
Nous utilisons ensuite le mot-clé function pour dire à l'ordinateur que nous créons une fonction.
Le code entre parenthèses est appelé un paramètre.
C'est un mot qui sert d'espace réservé, auquel nous donnons une certaine valeur quand nous appelons la fonction.
Cliquez sur "Bloqué ? Voir l'indice !" pour en savoir plus.
Ensuite nous avons écrit notre bloc de code réutilisable entre accolades { }.
Chaque ligne de code de ce bloc doit se terminer par ;.
Vous pouvez exécuter ce code en "appelant" la fonction, comme ceci :
disBonjour("Emilie");
Appeler cette fonction affichera Bonjour Emilie.
Instructions
A la ligne 11, appelez la fonction saluer avec le nom que vous voulez saluer grâce à la fonction.
Cliquez sur "Vérifier vos réponses" et regardez la fonction faire son travail ! Vous gagnez tellement de temps.
?
Hint
Quand nous voulons assembler deux chaînes de caractères, nous entrons un signe plus.
console.log("Salut" + "toi"); affichera Saluttoi. Ce n'est pas ce que nous voulons !
Si vous voulez un espace entre les mots, vous devez également ajouter l'espace !
console.log("Salut" + " " + "toi"); affichera Salut toi
Cet assemblage de chaînes de caractères est appelé concaténation.
Comment une fonction fonctionne-t-elle ?
Décomposons la façon dont l'ordinateur se comporte quand il voit le code d'une fonction.
var nomFonction = function() {
// code code code
// code code code
// (plus de lignes de code)
};
Le mot-clé var déclare une variable appelée nomFonction.
Le mot-clé function dit à l'ordinateur que nomFonction est une fonction et pas autre chose.
Les paramètres rentrent entre les parenthèses. L'ordinateur les recherchera ensuite dans le bloc de code.
Le bloc de code est le code réutilisable qui est entre les accolades { }.
Chaque ligne de code à l'intérieur de { } doit se terminer par un point-virgule.
La fonction entière se termine par un point virgule.
Pour utiliser une fonction, nous appelons la fonction simplement en écrivant son nom,
et en mettant une valeur de paramètre entre les parenthèses qui le suivent.
L'ordinateur va exécuter le code réutilisable avec la valeur du paramètre remplacée dans le code.
function demandeNourriture(nourriture) {
console.log("Je veux manger " + nourriture);
}
demandeNourriture("des pates")
Débuggons ! = debbugging (trouver ce qui ne tourne pas rond)
Pourquoi est-ce que le code est organisé ainsi aux lignes 2 à 5 ?
L'ordinateur peut comprendre le code sans espaces.
Mais ils permettent de comprendre et d'éditer le code beaucoup plus facilement.
Du coup, cela fait partie des bonnes pratiques à suivre.
Dois-je mettre un point-virgule à la fin de chaque ligne de code dans le bloc réutilisable ? Et à la fin de la fonction ?
Oui. A la fin de chaque ligne de code (à l'intérieur des accolades { }) et après la fonction (après les accolades { }),
mettez des point-virgules. Le point-virgule fait office de point dans une phrase.
Il permet à l'ordinateur de savoir qu'il y a des points d'arrêts dans le code.
var calculer = function (nombre) {
var val = nombre * 10;
console.log(val);
};
// Fonction mal écrite :
var saluer = function(nom) {
console.log(nom)
};
saluer("Robert") = appeler un fonction
var coutOrange = function (prix) {
console.log(prix * 5);
};
coutOrange("5")
Le mot-clé return
Bon travail ! Mais quand nous appelons une fonction, nous ne voulons pas toujours simplement afficher des choses.
Parfois, nous voulons simplement retourner (return, en anglais) une valeur.
Nous pouvons ensuite utiliser cette valeur (c'est à dire la valeur de sortie de la fonction) dans le reste du code.
Apprenons-en plus sur le mot-clé return, puis nous verrons
comment utiliser les fonctions avec une déclaration if / else dans l'exercice suivant !
Le mot-clé return donne simplement au développeur la valeur qui sort de la fonction.
Donc la fonction tourne, et lorsque le mot-clé return est utilisé,
la fonction va immédiatement sarrêter de tourner et retourner la valeur
// Un paramètre est un nombre, et nous voulons faire des maths avec ce nombre
var foisDeux = function(nombre) {
return nombre * 2;
};
// Appelez foisDeux ici !
var nouveauNombre = foisDeux(8);
console.log(nouveauNombre);
var quart = function (nombre) {
return nombre / 4;
}
if (quart(12) % 3 === 0 ) {
console.log("La déclaration est vraie");
} else {
console.log("La déclaration est fausse");
}
Les fonctions à deux paramètres
Jusqu'ici, les fonctions que nous avons vu ne prenaient qu'un seul paramètre.
Mais nous aurons souvent besoin d'écrire des fonctions avec plus d'un paramètre.
Par exemple, nous pouvons avoir la fonction suivante :
var aireBoite = function(longueur, largeur) {
return longueur * largeur;
};
avec plus d'un paramètre, nous pouvons créer des fonctions plus utiles.
Pour appeler une fonction avec plus d'un paramètre,
entrez juste une valeur pour chaque paramètre entre parenthèses.
Par exemple, aireBoite(9, 3) retournerait l'aire d'une boîte de longueur 9 et de largeur 3.
var perimetreBoite = function(longueur, largeur) {
return longueur + longueur + largeur + largeur;
}
perimetreBoite(3, 4);
Variables globales versus locales
Parlons maintenant d'un concept important : la portée. Le portée peut être locale ou globale.
Les variables définies à l'extérieur d'une fonction sont accessibles partout une fois qu'elles ont été déclarées. Elles sont appelées des variables globales, et leur portée est globale.
Par exemple :
var varGlobale = "salut";
var foo = function() {
console.log(varGlobale); // affiche "salut"
}
On peut accéder à la variable varGlobale de partout, y compris dans la fonction foo.
Les variables définies à l'intérieur d'une fonction sont des variables locales.
On ne peut y accéder à lextérieur de cette fonction
Par exemple :
var bar = function() {
var varLocale = "salut, salut !";
}
console.log(varLocale); // erreur
La variable varLocale n'existe qu'à l'intérieur de la fonction bar.
Essayer d'afficher varLocale à lextérieur de la fonction renvoie une erreur.
Regardez le code dans l'éditeur. Jusqu'ici,
vous utilisiez le mot-clé var sans vraiment comprendre pourquoi.
Le mot-clé var crée une nouvelle variable dans la zone courante, avec la portée courante.
Cela signifie que si var est utilisée en dehors d'une fonction, cette variable aura une portée globale.
Si var est utilisée à l'intérieur dune fonction, cette variable aura une portée locale.
Sur la ligne 4, nous n'avons pas utilisé le mot-clé var,
donc quand nous affichons mon_nombre dans la console à l'extérieur de la fonction,
cest 14 qui sera affiché.
var mon_nombre = 7; // ceci est une variable globale
var foisDeux = function(nombre) {
mon_nombre = nombre * 2;
console.log("A l'intérieur de la fonction, mon_nombre vaut : ");
console.log(mon_nombre);
};
foisDeux(7);
console.log("A l'extérieur de la fonction, mon_nombre vaut : ");
console.log(mon_nombre);
Changez la ligne 4 pour utiliser le mot-clé var.
Remarquez que la valeur de mon_nombre dans la fonction est maintenant à 14 et à lextérieur de la fonction est 7.
Utiliser mon_nombre sans le mot-clé var réfère à la variable globale qui a déjà été déclarée en dehors de la fonction,
sur la ligne 1. Cependant, si vous utilisez le mot-clé var à l'intérieur de la fonction,
vous déclarerez une nouvelle variable locale qui n'existe qu'à l'intérieur de la fonction.
var mon_nombre = 7; // ceci est une variable globale
var foisDeux = function(nombre) {
var mon_nombre = nombre * 2;
console.log("A l'intérieur de la fonction, mon_nombre vaut : ");
console.log(mon_nombre);
};
foisDeux(7);
console.log("A l'extérieur de la fonction, mon_nombre vaut : ");
console.log(mon_nombre);
var nomChaine = function(nom) {
return "Bonjour, je suis" + " " + nom;
};
var result = nomChaine("Amelie");
console.log(result);
Fonctions & if / else
Une application particulièrement pratique du code réutilisable est celle des déclarations if/else.
Elles peuvent être très bavardes, et fatigantes à écrire plusieurs fois.
Nous allons écrire une fonction qui vérifie combien d'heures de sommeil vous avez par nuit.
Dans la fonction, il va y avoir une déclaration if/else.
Nous voulons que la fonction vérifie différents nombres d'heures pour voir si une personne cumule assez dheures de sommeil.
instructions
Écrivez une fonction appelée verifSommeil qui prend le paramètre nombreHeures.
Dans la fonctions, écrivez une déclaration if qui définit que si le nombre dheures de sommeil est plus grand ou égal à 8,
le return vaudra "Vous dormez beaucoup ! Même peut-être trop !";.
Sinon (else), si le nombre d'heures de sommeil est inférieur à 8, le return vaudra "Faites donc une p'tite sieste !;
Ensuite appelez la fonction avec différentes heures de sommeil.
Appelez la fonction avec 10 heures de sommeil, comme ceci : verifSommeil(10);
Appelez la fonction avec 5 heures de sommeil.
Appelez la fonction avec 8 heures de sommeil.
var verifSommeil = function(nombreHeures) {
if (nombreHeures >= 8) {
return "Vous dormez beaucoup ! Même peut-être trop !";
} else {
return "Faites donc une p'tite sieste !";
}
}
verifSommeil(10)
verifSommeil(5)
verifSommeil(8)
Le jeu
Pierre, feuille, ciseaux est un jeu classique à deux joueurs.
Chaque joueur choisit soit pierre, soit feuille, soit ciseaux. Les issues possibles sont:
La pierre détruit les ciseaux.
Les ciseaux coupent la feuille.
La feuille couvre la pierre.
Notre code va diviser le jeu en 3 phases :
a. L'utilisateur fait un choix
b. L'ordinateur fait un choix
c. Une fonction de comparaison détermine le gagnant.
Choix ordi, partie 1
Terrible ! Maintenant, nous avons besoin que l'ordinateur fasse un choix.
Le jeu ne sera drôle que si l'ordinateur choisit au hasard.
Heureusement, JavaScript a quelque chose qui peut nous aider pour ça.
Si nous déclarons une variable et lui donnons pour valeur Math.random(),
cette variable aura pour valeur un nombre entre 0 et 1.
Choix ordi, partie 2
Nous avons choixOrdi mais il vaut maintenant une valeur aléatoire entre 0 et 1.
Nous devons trouver un moyen de traduire ce nombre aléatoire en un choix aléatoire entre pierre,
feuille, ou ciseaux. Comment faire ?!
Si choixOrdi est entre 0 et 0.33, redéfinir choixOrdi comme étant égal à "pierre".
Si choixOrdi est entre 0.34 et 0.66, redéfinir choixOrdi comme étant égal à "feuille".
Si choixOrdi est entre 0.67 et 1, redéfinir choixOrdi comme étant égal à "ciseaux".
Mais il y a trois possibilités ! Les if / else ne permettent de prendre en compte que deux possibilités.
Que faire ? Nous devons utiliser if / else if / else.
Regardez l'indice pour la totalité de la syntaxe. Vous allez rire tellement c'est simple.
Instructions
Sous votre code existant, écrivez la déclaration if / else if / else.
Sous les blocs respectifs, changez la valeur de choixOrdi en fonction des règles énoncées plus haut.
Rappelez-vous, vous NE devez PAS utiliser var pour changer la valeur dune variable qui existe déjà.
mon code
var choixUtilisateur = prompt("Choisissez-vous pierre, feuille, ou ciseaux ?")
var choixOrdi = Math.random();
console.log(choixOrdi)
if (choixOrdi <= 0.33) {
console.log("pierre");
} else if (choixOrdi >= 0,67) {
console.log("ciseaux");
} else {
console.log("feuille");
}
pc code
var choixUtilisateur = prompt("Choisissez-vous pierre, feuille, ou ciseaux ?");
var choixOrdi = Math.random();
if (choixOrdi < 0.34) {
choixOrdi = "pierre";
} else if(choixOrdi <= 0.67) {
choixOrdi = "feuille";
} else {
choixOrdi = "ciseaux";
} console.log("Ordinateur : " + choixOrdi);
Les deux choix sont les mêmes !
Et là, on va samuser ! Nous devons créer une fonction.
Elle prendra deux paramètres (les deux choix) puis retournera le choix gagnant.
En programmant un jeu comme celui-ci, vous devez d'abord définir toutes les issues possibles.
L'une d'elles est que l'utilisateur et lordinateur aient fait le même choix.
var comparer = function(choix1, choix2) {
if (choix1 === choix2) {
return "Egalité !";
}
}
Instructions
Nous avons gardé le code de la section précédente, mais c'est un commentaire. Laissez-le là pour l'instant.
Sous le commentaire, déclarez une fonction appelée comparer.
Elle prend deux paramètres, choix1 et choix2.
Dans la fonction, écrire une déclaration if. if choix1 === choix2, alors return "Egalité !"
Si choix1 est pierre...
Vous vous en sortez bien ! Maintenant, nous devons considérer les autres scénarios.
Divisons un peu le problème. Et si choix1 était "pierre" ? Si choix1 vaut "pierre",
a. si choix2 === "ciseaux", alors "pierre" gagne.
b. si choix2 === "feuille", alors "feuille" gagne.
Comment structurer ceci ? C'est un peu différent de ce que nous avons vu jusqu'ici.
Nous allons dabord avoir une déclaration if. Puis le code dans la déclaration if sera... une autre déclaration if !
Instructions
Codons le cadre de notre code précédent :
Dans la fonction comparer(), sous le code existant, écrivez un cas else if où la condition est choix1 === "pierre".
Dans ce cas else if, écrivez une déclaration if / else.
Si (if) choix2 === "ciseaux", retournez (return) "pierre gagne". Sinon (else), retourner "feuille gagne".
var comparer = function(choix1, choix2) {
if (choix1 === choix2) {
return "Egalité !";
} else if (choix1 === "pierre") {
if (choix2 === "ciseaux") {
return "pierre gagne !";
} else {
return "feuille gagne !";
}
}
}
var comparer = function(choix1, choix2) {
if (choix1 === choix2) {
return "Egalité !";
} else if (choix1 === "pierre") {
if (choix2 === "ciseaux") {
return "pierre gagne !";
} else {
return "feuille gagne !";
}
} else if (choix1 === "feuille") {
if (choix2 === "pierre") {
return "feuille gagne";
} else {
return "ciseaux gagnent";
}
}
}
var comparer = function(choix1, choix2) {
if (choix1 === choix2) {
return "Egalité !";
} else if (choix1 === "pierre") {
if (choix2 === "ciseaux") {
return "pierre gagne !";
} else {
return "feuille gagne !";
}
} else if (choix1 === "feuille") {
if (choix2 === "pierre") {
return "feuille gagne";
} else {
return "ciseaux gagnent";
}
} else if (choix1 === "ciseaux") {
if (choix2 === "pierre") {
return "pierre gagne";
} else {
return "ciseaux gagne";
}
}
}
Jeu pierre, feuille, ciseaux complet :
var choixUtilisateur = prompt("Choisissez-vous pierre, feuille, ou ciseaux ?");
var choixOrdi = Math.random();
if (choixOrdi < 0.34) {
choixOrdi = "pierre";
} else if(choixOrdi <= 0.67) {