Documents de cours 2020-2021 - FX Jollois
Comme vu précédemment, les langages HTML, CSS et SVG sont statiques. Aucune programmation n’est réalisable d’une part, et aucune interaction réelle avec l’utlisateur n’est possible d’autres part (sauf comportement lors de déplacement de la souris, mais uniquement cosmétiques).
JavaScript
(ou JS
) basé sur ECMAScript//
et sur plusieurs lignes avec /* */
Code exécutable directement dans la console JS
présente dans tous les navigateurs
JS
Deux possibilités d’intégration du script :
<script>code JS</script>
<script src = "code.js"></script>
Typage faible :
const pi = 3.14; // pi sera en lecture seule par la suite
var a = 5, b = "b"; // globale ou locale en fonction du placement de var
d = a; // var implicite ici, d sera globale
a = b; // a devient une chaîne
var z; // utilisation de var possible à tout moment
let temp; // durée de vie = bloc en cours
undefined
null
true
et false
"chaîne"
ou 'chaîne'
var tab = [1, "deux", true]; // tab[0] vaut 1
var obj = {
n: "blablabla", // on y accède avec obj.n
p1: 12, // idem pour les autres
p2: 3.214325,
t: [12, 23, 98]
};
JSON
pour JavaScript Object NotationGeoJSON
: format spécifique pour stocker les données géographiques (coordonnées et formes)Exemple
JSONView
de votre navigateur (ou tout autre plugin permettant de visualiser correctement les données JSON
)Est présenté ci-dessous l’ensemble des éléments classiques de syntaxe.
+
, -
, *
, /
, ()
, …==
, !=
, <
, <=
, ` >,
>=`===
, !==
5 == "5"
renvoie true
5 === "5"
renvoie false
if
if (condition) {
ligne(s) de code;
}
if (condition) {
ligne(s) de code;
} else {
ligne(s) de code;
}
if (condition) {
ligne(s) de code;
} else if {
ligne(s) de code;
} else {
ligne(s) de code;
}
switch
switch (expression) {
case valeurA:
ligne(s) de code;
break; // optionnel
case valeurB:
ligne(s) de code;
break; // optionnel
case valeurC:
ligne(s) de code;
break; // optionnel
...
default: // comportement si pas de correspondance
ligne(s) de code;
}
for
Boucle classique
for (initialisation; condition; incrémentation) {
ligne(s) de code;
}
Boucle sur les éléments d’un objet
for (variable in objet) {
ligne(s) de code;
}
Boucle sur les éléments d’un tableau
for (variable of tableau) {
ligne(s) de code;
}
while
do ... while
do {
ligne(s) de code;
} while (condition);
while
while (condition) {
ligne(s) de code;
}
function nomFonction (paramètre(s)) {
ligne(s) de code;
return valeur; // optionnel
}
// appel classique
var nomFonction = function (paramètre(s)) {
ligne(s) de code;
return valeur; // optionnel
};
// idem pour l'appel
L’objet arguments
contient les paramètres utilisés lors de l’appel de la fonction
La plus utile, console.log(chaîne)
, permet d’afficher du contenu dans la console du navigateur
Deux objets présents :
document
: contient le DOM justementwindow
: contient tous les informations de la page (dont les variables et fonctions JS
), ainsi que document
Quelques fonctions utiles de document
ou des éléments du DOM :
getElementById("nom")
renvoie un pointeur vers l’élément identifié par "nom"
getElementsByClassName("classe")
renvoie un tableau de pointeur vers les éléments de la classe donnéegetElementsByTagName("balise")
idem mais pour les éléments de la balisecreateElement("balise")
créé un élément de type spécifiéinnerHTML
contient le contenu HTML
de l’élémentappendChild
, removeChild
, insertBefore
permet d’ajouter ou de supprimer des éléments du DOMDans cet exemple, on réalise les étapes suivantes :
<div id="exjs">
</div>
<script>
var exjs = document.getElementById("exjs");
exjs.innerHTML = "Remplissage d'un div en rouge";
exjs.style.color = "red";
</script>