// Utilisation de var
function exempleVar() {
if (true) {
var message = "Hello, var!";
}
console.log(message); // "Hello, var!" est affiché, même à l'extérieur du bloc if
}
exempleVar();
// Utilisation de let
function exempleLet() {
if (true) {
let message = "Hello, let!";
}
// console.log(message); // Cela générera une "ReferenceError" car message n'est pas défini ici
}
// exempleLet();
// Réaffectation de la variable
function exempleReaffectation() {
var x = 10;
var x = 20; // La réaffectation avec "var" est autorisée
console.log(x); // Affiche 20
}
exempleReaffectation();
// Réaffectation de la variable avec let
function exemplePasReaffectation() {
let y = 10;
// let y = 20; // Cela générera une "SyntaxError" car vous ne pouvez pas réaffecter une variable "let" dans la même portée
}
// exemplePasReaffectation();
// <div id="monElement"></div>
const element = document.getElementById("monElement");
// Type : Element
// <div class="maClasse"></div>
// <div class="maClasse"></div>
const elements = document.getElementsByClassName("maClasse");
// Type : HTMLCollection
// <p>Paragraphe 1</p>
// <p>Paragraphe 2</p>
// <p>Paragraphe 3</p>
const paragraphs = document.getElementsByTagName("p");
// Type : HTMLCollection
// <div class="maClasse"></div> <- Sélectionné
// <div class="maClasse"></div> <- Non sélectionné
const element = document.querySelector(".maClasse");
// Type : Element
// <div class="maClasse"></div>
// <div class="maClasse"></div>
const elements = document.querySelectorAll(".maClasse");
// Type : NodeList
// <input type="text" name="monNom" value="Input avec nom">
const element = document.getElementsByName("monNom")[0];
// Type : NodeList (utilisé principalement pour les éléments de formulaire)
// <div id="parent">
// <div>Enfant 1</div>
// <div>Enfant 2</div>
// </div>
const parentElement = document.getElementById("parent");
const enfants = parentElement.children;
// Type : HTMLCollection
La boucle for est l'une des boucles les plus couramment utilisées. Elle permet de spécifier explicitement la condition de continuation et d'itérer sur un bloc de code un nombre prédéterminé de fois.
for (let i = 0; i < 5; i++) {
console.log(i);
}
La boucle while itère tant qu'une condition donnée est vraie. Elle est utilisée lorsque le nombre d'itérations n'est pas connu à l'avance.
let i = 0;
while (i < 5) {
console.log(i);
i++;
}
La boucle do...while est similaire à while, mais elle garantit au moins une exécution du bloc de code, même si la condition est fausse dès le départ.
let i = 0;
do {
console.log(i);
i++;
} while (i < 5);
La boucle for...in itère à travers les propriétés énumérables d'un objet. Elle est principalement utilisée pour parcourir des objets.
const obj = { a: 1, b: 2, c: 3 };
for (let key in obj) {
console.log(key, obj[key]);
}
La boucle for...of itère sur les éléments d'une structure de données itérable, telle qu'un tableau (array), une chaîne de caractères (string), ou un ensemble (set).
const arr = [1, 2, 3];
for (let element of arr) {
console.log(element);
}
Cette méthode est spécifique aux tableaux (Array) et permet d'itérer sur chaque élément du tableau en utilisant une fonction de rappel.
const arr = [1, 2, 3];
arr.forEach((element) => {
console.log(element);
});
// Avant : <p id="monParagraphe">Texte avant la modification</p>
const paragraphe = document.getElementById("monParagraphe");
paragraphe.textContent = "Texte après la modification";
// Après : <p id="monParagraphe">Texte après la modification</p>
// Avant : <div id="monDiv">Contenu avant la modification</div>
const div = document.getElementById("monDiv");
div.innerHTML = "<p>Contenu après la modification</p>";
// Après : <div id="monDiv"><p>Contenu après la modification</p></div>
// Avant : <div id="monElement">Texte existant</div>
var element = document.getElementById('monElement');
element.insertAdjacentText('beforebegin', 'Texte avant l’élément');
// Après :
// Texte avant l'élément
// <div id="monElement">Texte existant</div>
// Avant : <div id="monElement">Texte existant</div>
var element = document.getElementById('monElement');
element.insertAdjacentText('afterbegin', 'Texte avant l’élément');
// Après :
// <div id="monElement">Texte avant l'élémentTexte existant</div>
- beforebegin : À l'extérieur de l'element, avant
- afterbegin : À l'intérieur de l'element, avant son premier enfant ou texte.
- beforeend : À l'intérieur de l'element, après son dernier enfant ou texte.
- afterend : À l'extérieur de l'element, après
// Avant : <ul id="maListe"></ul>
const liste = document.getElementById("maListe");
const nouvelElement = document.createElement("li");
nouvelElement.textContent = "Nouvel élément ajouté";
liste.appendChild(nouvelElement);
// Après : <ul id="maListe"><li>Nouvel élément ajouté</li></ul>
// Avant : <p id="aSupprimer">Texte à supprimer</p>
const elementASupprimer = document.getElementById("aSupprimer");
elementASupprimer.parentNode.removeChild(elementASupprimer);
// Après : (l'élément <p> est supprimé du DOM)
// Avant : <div id="boutons"><button>Bouton1</button><button>Bouton2</button><button>Bouton3</button></div>
const parent = document.getElementById("boutons");
while (parent.firstChild) {
parent.removeChild(parent.firstChild);
}
// Après : <div id="boutons"></div>
// Avant : <div id="boutons"><button>Bouton1</button><button>Bouton2</button><button>Bouton3</button></div>
const parent = document.getElementById("boutons");
parent.innerHTML = '';
// Après : <div id="boutons"></div>
// Avant : <img id="monImage" src="image.jpg" alt="Image">
const image = document.getElementById("monImage");
image.src = "nouvelle-image.jpg";
image.alt = "Nouvelle image";
// Après : <img id="monImage" src="nouvelle-image.jpg" alt="Nouvelle image">
// Avant : <div id="monDiv" class="ancienneClasse"></div>
const div = document.getElementById("monDiv");
div.classList.remove("ancienneClasse");
div.classList.add("nouvelleClasse");
// Après : <div id="monDiv" class="nouvelleClasse"></div>
const monBool = div.classList.contains("nouvelleClasse");
// retourne : true
function clicHandler() {
console.log('Ça fonctionne! 🔥')
}
// <button id="monBouton">Cliquez-moi</button>
const bouton = document.getElementById("monBouton");
bouton.addEventListener("click", clicHandler);
Pour retirer un EventListener il faut spécifier la fonction.
bouton.removeEventListener("click", clicHandler);
this
est un mot-clé en JavaScript qui fait référence à l'objet actuel sur lequel une fonction est appelée. Son comportement dépend du contexte d'appel.
//<div id="monElement">Cliquez sur moi !</div>
const monElement = document.getElementById('monElement');
monElement.addEventListener('click', function() {
const id = this.id; // 'monElement'
this.classList.add('highlight'); // Ajoute une classe "highlight" à l'élément
});