Opérateurs JavaScript
Incrémentation / Décrémentation
let compteur = 5;
console.log(compteur++); // 5 (puis compteur devient 6)
console.log(++compteur); // 7 (compteur devient 7 puis on affiche)
console.log(compteur--); // 7 (puis compteur devient 6)
console.log(--compteur); // 5 (compteur devient 5 puis on affiche)
Opérateurs unaires
let texte = "123";
console.log(+texte); // 123 (conversion en nombre car c'est un string et qu'on applique une opération arithmétique)
console.log(-texte); // -123 (conversion puis négation)
console.log(!true); // false (NON logique)
console.log(~5); // -6 (NON binaire)
// L'opérateur binaire NON (~) prend l'opposé de chaque bit de son opérande et fournit la valeur ainsi obtenue.
// À l'instar des autres opérateurs binaires, il convertit son opérande en un entier signé sur 32 bits.
// const a = 5; // 00000000000000000000000000000101
// const b = -3; // 11111111111111111111111111111101
// console.log(~a); // 11111111111111111111111111111010
// Expected output: -6
// console.log(~b); // 00000000000000000000000000000010
// Expected output: 2
Opérateurs arithmétiques
console.log(10 + 5); // 15 (addition)
console.log(10 - 5); // 5 (soustraction)
console.log(10 * 5); // 50 (multiplication)
console.log(10 / 5); // 2 (division)
console.log(10 % 3); // 1 (reste/modulo)
console.log(2 ** 3); // 8 (exponentielle: 2^3)
Opérateurs de comparaison
console.log(5 < 10); // true
console.log(5 > 10); // false
console.log(5 <= 5); // true
console.log(5 >= 10); // false
Opérateurs d'égalité
console.log(5 == "5"); // true (égalité avec conversion)
console.log(5 === "5"); // false (égalité stricte, pas de conversion)
console.log(5 != "6"); // true (inégalité avec conversion)
console.log(5 !== "5"); // true (inégalité stricte)
Opérateurs logiques
console.log(true && false); // false (ET logique)
console.log(true || false); // true (OU logique)
console.log(null ?? "défaut"); // "défaut" (coalescence des nuls)
let nom = null;
let affichage = nom || "Anonyme"; // "Anonyme"
console.log(affichage);
Opérateur ternaire
let age = 18;
let statut = age >= 18 ? "majeur" : "mineur";
console.log(statut); // "majeur"
// Ternaire imbriqué
let note = 85;
let mention = note >= 90 ? "excellent" : note >= 70 ? "bien" : "à améliorer";
console.log(mention); // "bien"
Chaînage optionnel
let client = {
nom: "Jean",
adresse: {
ville: "Paris"
}
};
console.log(client?.nom); // "Jean"
console.log(client?.adresse?.ville); // "Paris"
console.log(client?.telephone?.numero); // undefined (pas d'erreur!)
Opérateurs d'affectation
let x = 10;
x += 5; // équivalent à x = x + 5
console.log(x); // 15
x -= 3; // x = x - 3
console.log(x); // 12
x *= 2; // x = x * 2
console.log(x); // 24
x /= 4; // x = x / 4
console.log(x); // 6
x **= 2; // x = x ** 2
console.log(x); // 36
Affectation avec décomposition
let [premier, second] = [10, 20];
console.log(premier, second); // 10 20
let {nom: nomClient, age: ageClient} = {nom: "Sophie", age: 25};
console.log(nomClient, ageClient); // "Sophie" 25
Opérateurs binaires
console.log(5 & 3); // 1 (ET binaire: 101 & 011 = 001)
console.log(5 | 3); // 7 (OU binaire: 101 | 011 = 111)
console.log(5 ^ 3); // 6 (OU exclusif: 101 ^ 011 = 110)
console.log(5 << 1); // 10 (décalage gauche: 101 -> 1010)
console.log(5 >> 1); // 2 (décalage droite: 101 -> 10)