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
JSDeux 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
undefinednulltrue 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 true5 === "5" renvoie falseifif (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;
}
switchswitch (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;
}
forBoucle 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;
}
whiledo ... whiledo {
ligne(s) de code;
} while (condition);
whilewhile (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 documentQuelques 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>