Cours 2 Java Script
Cours 2 Java Script
Suptech 2
Qu’est-ce que JavaScript ?
• JavaScript est aujourd’hui l’un des plus utilisés pour la création de
sites internet, car il est pris en charge par tous les principaux
navigateurs web : on dit qu’il crée un langage « dynamique ». Il peut
également être utilisé pour créer des applications web complexes,
telles que des jeux, des applications de productivité et des réseaux
sociaux. Cependant, JavaScript peut également être utilisé pour des
applications côté serveur à travers des environnements de
développement tels que Node.js.
Suptech 3
Qu’est-ce que JavaScript ?
• On dit que le HTML, le CSS et le JavaScript sont des standards du
web car les principaux navigateurs web (Google Chrome, Safari,
Firefox, etc.) savent tous « lire » (ou « comprendre » ou « interpréter
») ces langages et les interprètent généralement de la même façon ce
qui signifie qu’un même code va généralement produire le même
résultat dans chaque navigateur.
• Pour définir ce qu’est le JavaScript et le situer par rapport aux autres
langages, et donc pour comprendre les intérêts et usages du
JavaScript il faut savoir que :
• Le JavaScript est un langage dynamique ;
• Le JavaScript est un langage (principalement) côté client ;
• Le JavaScript est un langage interprété ;
• Le JavaScript est un langage orienté objet.
Suptech 4
Java et JavaScript
Suptech 5
JS un langage dynamique
Suptech 7
HTML
• Le navigateur comprend les différentes balises HTML et va alors
afficher notre page à nos visiteurs en tenant compte de celles-ci.
• Le contenu HTML ne va jamais être affiché tel quel, brut, mais des
règles de mises en forme vont lui être appliquées. Ces règles de
styles vont être définies en CSS. Le CSS va ainsi nous permettre
d’arranger les différents contenus HTML de la page en les
positionnant les uns par rapport aux autres, en modifiant la couleur
des textes, la couleur de fond des éléments HTML, etc.
Suptech 8
JS
• C’est là où le JavaScript entre en jeu : ce langage va nous permettre
de manipuler des contenus HTML ou des styles CSS et de les
modifier en fonction de divers évènements ou variables. Un
évènement peut être par exemple un clic d’un utilisateur à un certain
endroit de la page tandis qu’une variable peut être l’heure de la
journée.
Suptech 9
Le JavaScript, un langage
interprété
• On peut encore séparer les langages selon qu’ils puissent être
exécutés directement (on parlera alors de langages interprétés) ou
qu’il faille les transformer en une autre forme pour pouvoir les
exécuter (on parlera alors le langages compilés).
• Le JavaScript est un langage interprété. Cela signifie qu’il va pouvoir
être exécuté directement sous réserve qu’on possède le logiciel
interpréteur. Pas de panique ici : tous les navigateurs connus
possèdent leur interpréteur JavaScript.
Suptech 10
Le JavaScript, un langage coté
client
• Le code côté client est du code exécuté sur l'ordinateur de
l'utilisateur : quand une page web est vue, le code côté client de la
page est téléchargé, puis exécuté et affiché par le navigateur. Dans ce
module JavaScript, nous parlons explicitement de JavaScript côté
client.
Suptech 11
Le JavaScript, un langage orienté
objet
• Finalement, le JavaScript est un langage orienté objet. Il est trop tôt
selon moi pour vous expliquer ce que ça signifie ; nous reparlerons
de cela dans la partie consacrée aux objets.
Suptech 12
Emplacement script JS
On va pouvoir placer du code JavaScript à trois endroits différents :
• Directement dans la balise ouvrante d’un élément HTML ;
• Dans un élément script, au sein d’une page HTML ;
• Dans un fichier séparé contenant exclusivement du JavaScript et
portant l’extension .js.
NB : La dernière méthode sera notre méthode préférée puisqu’elle
permet une excellente séparation du code et une maintenabilité
optimale de celui-ci. En effet, si on veut insérer le code JavaScript
contenu dans notre fichier dans 100 pages différentes, il suffira ici
d’appeler ce fichier JavaScript dans les 100 pages. En cas de
modification du code, il suffira alors de le modifier une fois dans le
fichier JavaScript.
Suptech 13
Execution
• il va avant tout être important de bien comprendre que par défaut, un
navigateur va lire et exécuter le code dans l’ordre de son écriture.
• Plus précisément, lorsque le navigateur arrive à un élément script, il
va stopper le traitement du reste du HTML jusqu’à ce que le code
JavaScript soit chargé dans la page et exécuté
Suptech 14
Les commentaires en JavaScript
• Comme pour l’immense majorité des langages de programmation, on
va également pouvoir commenter en JavaScript.
• Les commentaires sont des lignes de texte (des indications) placées
au milieu d’un script et servant à documenter le code, c’est-à-dire à
expliquer ce que fait tel ou tel bout de script et éventuellement
comment le manipuler.
• Ces indications ne seront pas lues par le navigateur et seront donc
invisibles pour les visiteurs (sauf s’ils affichent le code source de la
page).
• Commenter va donc servir aux développeurs à se repérer plus
facilement dans un script, à le lire et à le comprendre plus vite. Cela
peut être utile à la fois pour vous même si vous travaillez sur des
projets complexes ou pour d’autres développeurs si vous êtes amené
à distribuer votre code un jour ou l’autre.
Suptech 15
Les commentaires en JavaScript
• En JavaScript, il existe deux types de commentaires qui vont s’écrire
différemment : les commentaires mono-ligne et les commentaires
multi-lignes.
• Notez que la syntaxe des commentaires multi-lignes peut être utilisée
pour écrire un commentaire mono-ligne. Vous pouvez donc vous
contenter de n’utiliser que cette syntaxe.
• Pour écrire un commentaire multilignes, il faudra entourer le texte de
notre commentaire avec la syntaxe suivante /* */.
• Pour écrire un commentaire monoligne, on utilisera un double
slash // qui sera suivi du texte de notre commentaire (ou
éventuellement la syntaxe multilignes).
Suptech 16
L’indentation en JavaScript
Suptech 17
Pour commencer
• L’idée ici est que le langage JavaScript est très bien fait et ne nous
oblige pas strictement à utiliser un point-virgule pour notifier la fin
de chaque instruction. En effet, le JavaScript va être capable de «
deviner » quand une instruction de termine et va ajouter
automatiquement des points-virgules là où ça lui semble pertinent.
• pour pouvoir se passer des points-virgules, il faut donc déjà bien
connaitre le langage et les règles d’ajout automatique des points
virgules pour créer un code avec une structure qui va pouvoir être
interprétée correctement par la JavaScript.
• Sans une connaissance parfaite du comportement du JavaScript et
des règles d’ajout, on risque d’avoir des résultats inattendus voire un
code non fonctionnel puisqu’il est possible que le JavaScript ajoute
des points-virgules là où on ne s’y attend pas.
• Pour cette raison, nous ajouterons explicitement des points-virgules à
la fin de (presque) toutes les instructions dans ce cours.
Suptech 18
Les variables
Suptech 19
Les variables
• Pour pouvoir utiliser les variables et illustrer leur intérêt, il va déjà
falloir les créer. Lorsqu’on crée une variable en JavaScript, on dit
également qu’on « déclare » une variable.
• Pour déclarer une variable en JavaScript, nous allons devoir utiliser
le mot clef var ou le mot clef let suivi du nom qu’on souhaite donner
à notre variable.
Suptech 20
Les variables
• Concernant le nom de nos variables, nous avons une grande liberté
dans le nommage de celles-ci mais il y a quand même quelques
règles à respecter :
• Le nom d’une variable doit obligatoirement commencer par une
lettre ou un underscore (_) et ne doit pas commencer par un chiffre ;
• Le nom d’une variable ne doit contenir que des lettres, des chiffres et
des underscores mais pas de caractères spéciaux ;
• Le nom d’une variable ne doit pas contenir d’espace.
• De plus, notez que le nom des variables est sensible à la casse en
JavaScript. Cela signifie que l’usage de majuscules ou de minuscules
avec un même nom va permettre de définir des variables différentes.
Par exemple, les noms texte, TEXTE et tEXTe vont pouvoir définir
des variables différentes.
Suptech 21
Les variables
• Vous pouvez également noter qu’on utilise généralement la
convention lower camel case pour définir les noms de variable en
JavaScript. Cette convention stipule simplement que lorsqu’un nom
de variable est composé de plusieurs mots, on colle les mots
ensemble en utilisant une majuscule pour chaque mot sauf le
premier. Par exemple, si je décide de nommer une variable « monage
» j’écrirai en JavaScript let monAge ou var monAge.
• Ci-dessous, on crée nos deux premières variables en utilisant le mot
clef let dans notre fichier cours.js :
Suptech 22
Initialiser une variable
Suptech 23
Les variables
Suptech 24
Modifier la valeur stockée dans
une variable
• Pour affecter une nouvelle valeur dans une variable déjà initialisée,
on va se contenter d’utiliser à nouveau l’opérateur d’affectation =.
Suptech 25
La différence entre les mots clefs
let et var
La remontée ou « hoisting » des variables
• Lorsqu’on utilise la syntaxe avec var, on n’est pas obligé de déclarer
la variable avant de la manipuler dans le code, on peut très bien
effectuer des manipulations en haut du code et la déclarer en fin de
code.
• Cela est possible car le JavaScript va traiter les déclarations de
variables effectuées avec var avant le reste du code JavaScript. Ce
comportement est appelé remontée ou hoisting.
• Ce comportement a été jugé comme inadapté dans les versions
récentes de JavaScript et a donc été corrigé dans la déclaration de
variables avec let : les variables utilisant la syntaxe let doivent
obligatoirement être déclarées avant de pouvoir être utilisées.
Suptech 26
La redéclaration de variables
Suptech 27
La portée des variables
Suptech 28
Les types de données en
JavaScript
• En JavaScript, il existe 7 types de valeurs différents. Chaque valeur
qu’on va pouvoir créer et manipuler en JavaScript va obligatoirement
appartenir à l’un de ces types. Ces types sont les suivants :
• String ou « chaine de caractères » en français ;
• Number ou « nombre » en français ;
• Boolean ou « booléen » en français ;
• Null ou « nul / vide » en français;
• Undefined ou « indéfini » en français ;
• Symbol ou « symbole » en français ;
• Object ou « objet » en français ;
Suptech 29
Les types de données en
JavaScript
• Pour s’en convaincre, on peut utiliser la fonction typeof qui nous
permet de vérifier le type d’une valeur (éventuellement contenue
dans une variable)
Suptech 30
Le type chaîne de caractères ou
String
• Le premier type de données qu’une variable va pouvoir stocker est le
type String ou chaîne de caractères. Une chaine de caractères est une
séquence de caractères, ou ce qu’on appelle communément un texte.
• Notez que toute valeur stockée dans une variable en utilisant des
guillemets ou des apostrophes sera considérée comme une chaine de
caractères, et ceci même dans le cas où nos caractères sont à priori
des chiffres comme "29" par exemple.
Suptech 31
Le type chaîne de caractères ou
String
Trouver la longueur d'une chaîne
C'est facile — il suffit d'utiliser la propriété length. Entrez ceci :
let browserType = "mozilla";
browserType.length;
Cette commande doit renvoyer le nombre 7, parce que « mozilla »
comporte 7 caractères. C'est utile pour de nombreuses raisons ; par
exemple, vous pourriez avoir besoin de trouver les longueurs d'une
série de noms pour les afficher par taille ou faire savoir à un utilisateur
qu'il a entré un nom trop long dans un champ de formulaire à partir du
moment où il dépasse une certaine taille.
Suptech 32
Exemple
• <button>Pressez moi</button>
• const button = document.querySelector("button"); button.onclick =
function () { let name = prompt("Quel est votre nom;?"); alert("Salut
" + name + ", sympa de vous voir;!"); };
Suptech 33
Solution
• <button>Pressez-moi</button>
Crée un bouton sur lequel l'utilisateur peut cliquer. Le texte à l’intérieur
du bouton est "Pressez-moi".
• const button = document.querySelector("button");
• querySelector("button") : Sélectionne le premier élément <button>
de la page.
• const : Crée une variable constante nommée button qui stocke la
référence de ce bouton.
Suptech 34
Solution
• button.onclick = function () { ... }
Associe une fonction anonyme (c'est-à-dire sans nom) à l'événement
onclick du bouton.
onclick signifie que la fonction sera exécutée quand l'utilisateur
clique sur le bouton.
• prompt() : Affiche une boîte de dialogue qui demande à l'utilisateur
de saisir son nom.
La valeur saisie par l'utilisateur est stockée dans la variable name.
• alert() : Affiche une boîte de dialogue avec un message
• Deux cas :Si un nom a été donné : "Salut [nom], sympa de vous
voir !"
• Si aucun nom n’a été donné : "Vous n'avez pas entré de nom."
Suptech 35
Nombres
• Vous pouvez stocker des nombres dans des variables, soit des
nombres entiers comme 30 ou des nombres décimaux comme 2.456
(appelés aussi nombres à virgule flottante). Il n'est pas nécessaire de
déclarer le type de la variable dans JavaScript, contrairement à
d'autres langages de programmation. Lorsque vous donnez une
valeur numérique à une variable, ne la mettez pas entre guillemets.
• var myAge = 17;
Suptech 36
Nombres
• pour arrondir votre nombre avec un nombre fixe de décimales,
utilisez la méthode toFixed(). Tapez les lignes suivantes dans la
console de votre navigateur :
• const grandePartieDecimale = 1.766584958675746364;
grandePartieDecimale; const partieDecimaleAdeuxChiffres =
grandePartieDecimale.toFixed(2); partieDecimaleAdeuxChiffres;
Suptech 37
Les booléens
• Les booléens sont des valeurs true/false (vrai/faux) — elles ne
peuvent prendre que deux valeurs: true ou false. Elles sont
généralement utilisées pour tester une condition, à la suite de laquelle
le code est exécuté de manière appropriée. Ainsi, par exemple, un cas
simple pourrait être :
• var iAmAlive = true;
• Toutefois, en réalité, un booléen sera plutôt utilisé ainsi :
• var test = 6 < 3;
• Cette expression utilise l'opérateur « inférieur à » (<) pour tester si 6
est plus petit que 3. Comme vous pouvez vous y attendre, cette
expression renverra false, car 6 n'est pas plus petit que 3
Suptech 38
Un tableau
Un tableau est un objet unique contenant plusieurs valeurs entre
crochets séparées par des virgules. Saisissez les lignes suivantes dans la
console :
• var myNameArray = ["Chris", "Bob", "Jim"];
• var myNumberArray = [10, 15, 40];
• Un fois ces tableaux définis, vous pouvez avoir accès à chaque
valeur en fonction de leur emplacement dans le tableau.
• Voyez ces lignes :
myNameArray[0]; // renverra 'Chris'
myNumberArray[2]; // renverra 40
• La valeur entre crochets précise l'index correspondant à la position
de la valeur que vous souhaitez voir renvoyée. Vous remarquerez que
les tableaux en JavaScript sont indexés à partir de zéro : le premier
élément a l'index 0.
Suptech 39
Objets
En programmation, un objet est une structure de code qui modélise un
objet du réel. Vous pouvez avoir un objet simple représentant une place
de parking avec sa largeur et sa profondeur ou bien un objet
représentant une personne avec comme données son nom, sa taille, son
poids, son vernaculaire, comment le contacter, et plus encore.
• Entrez la ligne suivant dans la console de votre explorateur :
• var dog = { name: "Spot", breed: "Dalmatian" };
• Pour récupérer une information stockée dans un objet, vous pouvez
utiliser la syntaxe suivante :
• dog.name;
Suptech 40
Typage faible
Suptech 41
Convertir des valeurs en type
numérique
• Parfois vous pourrez rencontrer un nombre enregistré sous la forme
d'une chaîne de caractères, et il sera alors plus difficile d'effectuer
des calculs avec. Cela arrive le plus souvent lorsqu'une donnée est
entrée dans une entrée de formulaire, et que le type de donnée entré
est du texte. Il existe une façon de résoudre ce problème : passer la
valeur qu'est la chaîne de caractères au constructeur Number() pour
retourner une version numérique de la même valeur.
Suptech 42
Exemple
• Par exemple, essayez de taper ces lignes dans votre console :
let monNombre = "74";
monNombre + 3;
Vous obtenez le résultat 743, et non pas 77, car monNombre est en fait
défini en tant que chaîne de caractères. Vous pouvez tester en tapant la
ligne suivante :
typeof monNombre;
Pour réparer le calcul, vous pouvez faire ceci:
let monNombre = "74"; Number(monNombre) + 3;
Le résultat est alors 77, comme initialement attendu.
Suptech 43
Suptech 44
Exercice
• Essayez de saisir quelques exemples simples de votre cru, comme :
• 10 + 7; 9 * 8; 60 % 3;
• Déclarez et initialisez quelques variables, puis utilisez‑les dans des
opérations. Les variables se comporteront exactement comme les
valeurs qu'elles contiennent pour les besoins de l'opération. Par
exemple :
• const num1 = 10;
• const num2 = 50;
• 9 * num1;
• num1 ** 3;
• num2 / num1;
• 5 + 10 * 3;
• (num2 % 9) * num1;
• num2 + num1 / 8 + 2;
Suptech 45
Priorité des opérateurs (précédence)
Suptech 46
Opérateurs d'incrémentation et
de décrémentation
Suptech 47
Exemple
• guessCount++;
• 3++;
• Vous ne pouvez donc incrémenter qu'une variable déjà existante.
Essayez ceci :
• let num1 = 4; num1++;
• La ligne 2 est quelque peu étrange ! En écrivant cela, elle renvoie la
valeur 4 : c'est dû au fait que l'explorateur renvoie la valeur
courante, puis incrémente la variable. Vous constaterez qu'elle a bien
été incrémentée si vous demandez à la revoir :
• num1;
• C'est pareil avec -- : essayez ce qui suit :
• let num2 = 6;
• num2--;
• num2;
Suptech 48
Quiz
• Question 1: Qu'est-ce que JavaScript ?
A) Un langage de programmation côté serveur
B) Un langage de programmation côté client
C) Un langage de balisage
D) Un langage de style
• Question 2: Quel mot-clé est utilisé pour déclarer une variable en
JavaScript ?
A) var
B) define
C) let
D) A et C
Suptech 49
Quiz
• Question 3: Que retourne l'opérateur typeof pour une variable
non définie ?
A) "null"
B) "undefined"
C) "NaN"
D) "object"
• Question 4: Quelle fonction est utilisée pour convertir une chaîne
de caractères en entier en JavaScript ?
A) parseInt()
B) toInteger()
C) Number()
D) A et C
Suptech 50
Quiz
• Question 5: Quel est le résultat de l'opération 2 + '2' en
JavaScript ?
• A) 4
B) "22"
C) "4"
D) NaN
• Question 6: Quelle est la portée d'une variable déclarée avec let
dans une fonction ?
• A) Globale
B) Locale à la fonction
C) Locale au bloc
D) Locale au script
Suptech 51
Exercice
• Énoncé : Demandez à l'utilisateur de saisir deux nombres (vous
pouvez les définir directement dans le code) et déterminez lequel des
deux est le plus grand. Affichez le résultat dans la console.
• console.log(...) : Cette fonction affiche un message dans la console.
Le message ici utilise la template string (`${nombre1`} (délimité
par des backticks `) pour insérer la valeur de nombre dans le
message.
Suptech 52
Solution
• Exemple de code :
• // Définir les deux nombres
• let nombre1 = 10; // Vous pouvez modifier cette valeur
• let nombre2 = 20; // Vous pouvez modifier cette valeur
• // Comparer les deux nombres
• if (nombre1 > nombre2)
• { console.log(`${nombre1} est plus grand que ${nombre2}`); } else
if (nombre1 < nombre2) { console.log(`${nombre2} est plus grand
que ${nombre1}`); } else { console.log(`${nombre1} et ${nombre2}
sont égaux`); }
Suptech 53