Syntaxe, Variables et Portée
| Concept | Exemple de code | Description et Usage |
|---|---|---|
| Intégration | |
Le code JS se place dans des balises <script>. L'attribut defer est recommandé pour ne pas bloquer le chargement du HTML. |
| Déclaration | |
let et const (ES6+) respectent la portée de bloc ({}). var a une portée de fonction et est à éviter aujourd'hui. |
| Portée (Scope) | |
Globale : accessible partout. Locale : accessible uniquement dans le bloc ou la fonction où elle est déclarée. |
Opérateurs
| Catégorie | Opérateurs | Description |
|---|---|---|
| Arithmétiques |
+ (Addition / Concaténation)- (Soustraction)* (Multiplication)/ (Division)% (Modulo - Reste de division)++ (Incrémentation : +1)-- (Décrémentation : -1)** (Exposant)
|
Permettent d'effectuer des calculs. Attention, le + sert aussi à coller des chaînes de caractères entre elles. |
| Comparaison |
== (Égal valeur - conversion auto)=== (Strictement égal : valeur ET type)!= (Différent valeur)!== (Strictement différent)>, < (Plus grand/petit)>=, <= (Ou égal)
|
Toujours privilégier l'égalité stricte === et !== pour éviter les erreurs de conversion de type implicite (ex: 5 == "5" est vrai, mais 5 === "5" est faux). |
| Logiques |
&& (ET)|| (OU)! (NON)
|
Utilisés pour combiner des conditions. ! inverse le résultat (vrai devient faux). |
Fonctions de Base et Manipulation
| Fonction / Propriété | Exemple | Description |
|---|---|---|
| Chaînes & Tableaux | |
Méthodes et propriétés essentielles pour manipuler du texte ou connaitre la taille d'un tableau/chaîne. |
| Conversion | |
Transforme les types de données. |
| Interaction | |
Boîtes de dialogue natives (bloquantes). |
Structures de Contrôle et Boucles
| Structure | Exemple de code | Description |
|---|---|---|
| Conditionnelles | |
Permet d'exécuter du code selon des conditions. |
Boucle for |
|
Utilisée lorsque le nombre d'itérations est connu. |
Boucle while |
|
Tant que la condition est vraie (vérifiée avant). |
Boucle do...while |
|
Exécute le code au moins une fois, puis vérifie la condition. |
| Break / Continue | break; (stop) continue; (suivant) |
Contrôle le flux dans les boucles. |
Fonctions
Une fonction est un bloc de code réutilisable. Il est important de distinguer les fonctions qui effectuent une action simple de celles qui renvoient une valeur.
| Cas d'utilisation | Exemple de code | Description |
|---|---|---|
| Sans paramètre Sans valeur de retour |
|
La fonction exécute simplement une série d'instructions (ici, un affichage console) et ne renvoie rien. |
| Avec paramètres Sans valeur de retour |
|
La fonction reçoit des données en entrée (arguments) pour adapter son comportement, mais ne renvoie toujours rien au programme principal. |
| Avec paramètres ET valeur de retour |
|
Le mot-clé return est crucial. Il renvoie le résultat du calcul à l'endroit où la fonction a été appelée. La fonction s'arrête immédiatement après le return. |
| Fonction Fléchée (ES6) | |
Une syntaxe moderne plus courte. Si la fonction tient sur une ligne, le return est implicite (pas besoin de l'écrire). |
Tableaux et Objets
| Type | Exemple de code | Description |
|---|---|---|
| Tableau Simple | |
Liste ordonnée indexée numériquement (0, 1, 2...). |
| Multidimensionnel | |
Tableau de tableaux. |
| Objet (Associatif) | |
Collection de paires clé/valeur. |
BOM (Browser Object Model)
Le BOM permet d'interagir avec la fenêtre du navigateur.
| Objet | Propriétés/Méthodes | Exemple |
|---|---|---|
window |
L'objet global. |
window.resizeTo(500, 500) (redimensionner)window.close() (fermer l'onglet/fenêtre)window.innerWidth (largeur viewport)
|
navigator |
Infos navigateur. |
navigator.language (ex: "fr-FR")navigator.cookieEnabled (true/false)navigator.userAgent (version système)
|
location |
Gestion URL. |
location.href (URL actuelle)location.assign("https://...") (Rediriger)location.reload() (Recharger)
|
history |
Historique nav. |
history.back() (Précédent)history.forward() (Suivant)history.length (Nb pages dans l'historique)
|
screen |
Infos Écran. |
screen.width (Largeur totale écran)screen.height (Hauteur totale écran)screen.availWidth (Largeur disponible sans barre tâches)
|
DOM (Document Object Model)
Manipulation du contenu HTML et CSS.
| Action | Méthodes | Description |
|---|---|---|
| Sélection |
document.getElementById("id")document.getElementsByTagName("p")document.getElementsByClassName("cls")document.querySelector("#id .cls")
|
getElementById retourne 1 élément.getElementsByTagName retourne une collection (plusieurs).querySelector est le plus moderne et polyvalent.
|
| Contenu |
el.textContent = "Texte brut";el.innerHTML = "<b>HTML</b>";document.write("Texte");
|
textContent est sécurisé pour du texte.innerHTML interprète les balises.write écrit directement dans le flux (écrase tout si page chargée).
|
| Manipulation |
document.createElement("div")parent.append(el) (Ajoute à la fin)parent.prepend(el) (Ajoute au début)el.remove() (Supprime l'élément)
|
Permet de construire ou détruire le DOM dynamiquement. append est plus souple que l'ancien appendChild. |
| Style | el.style.backgroundColor = "red"; |
Modifie le style en ligne (attribut style). Utiliser CamelCase pour les propriétés CSS. |
Événements
| Méthode | Exemple de code | Note |
|---|---|---|
| addEventListener | |
Standard moderne. Sépare JS et HTML. |
| Attribut HTML | <button onclick="func()"> |
Ancienne méthode, déconseillée. |
Asynchrone, Exceptions et POO
| Concept | Exemple | Description |
|---|---|---|
| Timer | setTimeout(fn, 1000)setInterval(fn, 1000) |
Exécuter une fois après délai ou en boucle. |
| Exceptions | |
Gestion des erreurs sans planter le script. |
| POO | |
Classes et héritage (ES6). |
| Get/Set | |
Accesseurs et mutateurs de propriétés. |
API et Stockage
| Techno | Exemple | Description |
|---|---|---|
| Fetch (API) | fetch(url).then(res => res.json()) |
Remplaçant moderne de XMLHttpRequest. |
| XHR (Ancien) | new XMLHttpRequest() |
Ancienne méthode AJAX. |
| Web Storage | localStorage.setItem("key", "val") |
Stockage persistant (local) ou temporaire (session). |
| Cookies | document.cookie = "a=1"; |
Stockage lié aux requêtes HTTP. |
jQuery
Bibliothèque pour simplifier le DOM et l'AJAX.
| Action | jQuery | JS Natif |
|---|---|---|
| Sélection | $(".class") |
document.querySelectorAll(".class") |
| Modif. | $("#id").html("Txt").css("color","red") |
el.innerHTML="Txt"; el.style.color="red" |
| Event | $("btn").on("click", fn) |
el.addEventListener("click", fn) |
| AJAX | $.ajax({url:..., success:...}) |
fetch(url).then(...) |