Cours IT Bases JavaScript 040_Opérateurs
Les opérateurs JavaScript sont utilisés pour effectuer des opérations mathématiques, des comparaisons, des opérations logiques et d’autres opérations, et renvoient des résultats.
Opérateurs arithmétiques
+: Addition-: Soustraction*: Multiplication/: Division%: Modulo (reste)**: Exponentiation
Exemple :
let a = 5;let b = 2;
console.log(a + b); // Sortie 7console.log(a - b); // Sortie 3console.log(a * b); // Sortie 10console.log(a / b); // Sortie 2.5console.log(a % b); // Sortie 1console.log(a**b); // Sortie 25Opérateurs d’affectation
=: Affectation+=: Affectation d’addition-=: Affectation de soustraction*=: Affectation de multiplication/=: Affectation de division%=: Affectation de modulo**=: Affectation d’exponentiation??=: Affectation nullish, l’affectation ne se produit que lorsque la valeur de la variable est null ou undefined
Exemple :
let x = 5;x += 2; // x = x + 2; Sortie 7x -= 2; // x = x - 2; Sortie 3x *= 2; // x = x * 2; Sortie 10x /= 2; // x = x / 2; Sortie 2.5x %= 2; // x = x % 2; Sortie 1x **= 2; // x = x ** 2; Sortie 25x ??= 2; // Sortie 5, affecte 2 lorsque x est null ou undefinedconsole.log(x);Opérateurs de comparaison
==: Égalité (le type de valeur est automatiquement converti)===: Égalité stricte (valeur et type sont égaux)!=: Inégalité!==: Inégalité stricte>: Supérieur à<: Inférieur à>=: Supérieur ou égal à<=: Inférieur ou égal à
Lorsque des valeurs non numériques sont rencontrées, elles sont d’abord converties en valeurs numériques puis comparées. Lorsque des chaînes sont rencontrées, les codes Unicode des caractères sont comparés position par position.
Exemple :
let a = 5;let b = '5';let c = 10;
console.log(a == b); // Sortie true, les valeurs sont égalesconsole.log(a === b); // Sortie false, les types ne sont pas égauxconsole.log(a != b); // Sortie false, les valeurs sont égalesconsole.log(a !== b); // Sortie true, les types ne sont pas égauxconsole.log(a > c); // Sortie false, 5 < 10console.log(a < c); // Sortie true, 5 < 10console.log(a >= c); // Sortie false, 5 <= 10console.log(a <= c); // Sortie true, 5 <= 10Opérateurs logiques
Les opérateurs logiques, lors du traitement des opérandes, les convertissent en valeurs booléennes et renvoient la valeur d’origine de cet opérande.
&& : ET logique
Utilisé pour vérifier si toutes les conditions sont true simultanément. Si toutes les conditions sont true, le résultat de l’expression entière est true ; sinon, le résultat est false.
L’opération ET recherche le premier false de gauche à droite. Si false est trouvé, le calcul s’arrête et renvoie la valeur d’origine de cet opérande (évaluation en court-circuit). S’il n’y a finalement pas de false, le dernier true est renvoyé.
|| : OU logique
Utilisé pour vérifier si au moins une condition est true. Si au moins une condition est true, le résultat de l’expression entière est true ; si toutes les conditions sont false, le résultat est false.
L’opération OU recherche le premier true de gauche à droite. Si true est trouvé, le calcul s’arrête et renvoie la valeur d’origine de cet opérande (évaluation en court-circuit). S’il n’y a finalement pas de true, le dernier false est renvoyé.
! : NON logique
Utilisé pour inverser une valeur booléenne. Si une valeur est true, l’utilisation de l’opérateur NON logique l’inverse en false ; si une valeur est false, elle l’inverse en true.
Le NON logique peut également être utilisé pour convertir des valeurs non booléennes en valeurs booléennes. Il convertit toutes les valeurs sauf null, undefined, 0, NaN, "" (chaîne vide) en true, tandis que ces valeurs elles-mêmes sont converties en false.
Exemple :
let a = true;let b = false;let c = "hello";let d = null;
console.log(a && b); // Sortie falseconsole.log(c && d); // Sortie nullconsole.log(a || b); // Sortie trueconsole.log(c || d); // Sortie helloconsole.log(!a); // Sortie falseconsole.log(!d); // Sortie trueOpérateur ternaire
condition ? expr1 : expr2: Si la condition est vraie, renvoieexpr1, sinon renvoieexpr2.
Exemple :
let age = 18;let status = (age >= 18) ? 'Adulte' : 'Mineur';console.log(status); // Sortie 'Adulte'Opérateur de coalescence nulle
L’opérateur de coalescence nulle (Nullish Coalescing Operator) est un opérateur utilisé pour gérer les valeurs par défaut, généralement utilisé pour garantir qu’une variable a une valeur non nulle (ni null ni undefined). La syntaxe de cet opérateur est ??.
Lors de l’utilisation de l’opérateur de coalescence nulle, il renvoie le premier opérande défini (ni null ni undefined). Si le premier opérande est null ou undefined, il renvoie le deuxième opérande.
Exemple :
let num1 = 0;let num2 = 1;let result = num1 ?? num2;console.log(result); // Sortie 0, car num n'est pas null ou undefined
let user;console.log(user ?? "Anonyme"); // Sortie Anonyme, car user n'est pas définiOpérateurs au niveau du bit
&: ET au niveau du bit|: OU au niveau du bit^: XOR au niveau du bit~: NON au niveau du bit<<: Décalage à gauche>>: Décalage à droite>>>: Décalage à droite non signé
Exemple :
let a = 5; // Binaire : 0101let b = 3; // Binaire : 0011
console.log(a & b); // Sortie 1 (ET au niveau du bit)console.log(a | b); // Sortie 7 (OU au niveau du bit)console.log(a ^ b); // Sortie 6 (XOR au niveau du bit)console.log(~a); // Sortie -6 (NON au niveau du bit)console.log(a << 1); // Sortie 10 (Décalage à gauche)console.log(a >> 1); // Sortie 2 (Décalage à droite)Autres opérateurs
typeof: Renvoie une chaîne indiquant le type de l’opérande non évalué.instanceof: Utilisé pour tester si un objet est une instance d’un type spécifique.
Exemple :
let str = 'Hello';console.log(typeof str); // Sortie 'string'
let arr = [1, 2, 3];console.log(arr instanceof Array); // Sortie true+ (Plus)
En JavaScript, le signe plus + a plusieurs utilisations, y compris les opérations mathématiques, la concaténation de chaînes et les opérations unaires.
Opération mathématique
Exemple :
let a = 5;let b = 3;let result = a + b;console.log(result); // Sortie 8Si les deux sont des nombres, + est utilisé pour effectuer une addition mathématique.
Concaténation de chaînes
Exemple :
let str1 = 'Hello';let str2 = ' World';let result = str1 + str2;console.log(result); // Sortie 'Hello World'Si l’un des opérandes est une chaîne, + effectuera une concaténation de chaînes.
Opérateur plus unaire
Exemple :
let str = '42';let num = +str;console.log(num); // Sortie 42En utilisant + devant un seul opérande, il peut convertir l’opérande en nombre. C’est la fonction de l’opérateur plus unaire.
Conversion de type
Exemple :
let num = 42;let str = '10';let result = num + str; // Conversion de type implicite (coercition de type)console.log(result); // Sortie '4210'Si l’un des opérandes est une chaîne, + effectuera une conversion de type, convertissant les autres opérandes en chaînes, puis effectuera une concaténation de chaînes.
Concaténation de tableaux
Exemple :
let arr1 = [1, 2, 3];let arr2 = [4, 5, 6];let result = arr1 + arr2;console.log(result); // Sortie '1,2,34,5,6'Lorsqu’un opérande est un tableau, + convertira le tableau en chaîne, puis effectuera une concaténation de chaînes.
Cas particuliers
Exemple :
let specialResult1 = '1' + 2 + 3;console.log(specialResult1); // Sortie '123'
let specialResult2 = 2 + 3 + '1';console.log(specialResult2); // Sortie '51'specialResult1 : Parce que la chaîne apparaît à l’extrême gauche de +, les nombres suivants seront concaténés comme des chaînes.
specialResult2 : Parce que la chaîne apparaît à l’extrême droite de +, les nombres précédents seront d’abord additionnés mathématiquement, puis concaténés.
- (Moins)
En JavaScript, le signe moins - est un opérateur utilisé pour effectuer une soustraction mathématique.
Soustraction mathématique
Exemple :
let a = 5;let b = 3;let result = a - b;console.log(result); // Sortie 2Si les deux sont des nombres, - est utilisé pour effectuer une soustraction mathématique.
Opérateur moins unaire
Exemple :
let num = 42;let result = -num;console.log(result); // Sortie -42En utilisant - devant un seul opérande, il peut effectuer une soustraction unaire, convertissant l’opérande en son opposé.
Conversion de type
Exemple :
let num1 = 42;let str = '10';let result = num1 - str;console.log(result); // Sortie 32Si l’un des opérandes est une chaîne, - effectuera une conversion de type, convertissant les autres opérandes en nombres, puis effectuera une soustraction mathématique.
Cas particulier
Exemple :
let specialResult = '10' - 2;console.log(specialResult); // Sortie 8Dans ce cas particulier, étant donné que le contenu de la chaîne peut être converti avec succès en nombre, - effectuera une soustraction mathématique.
=、==、=== (Affectation, égalité non stricte, égalité stricte)
En JavaScript, le signe égal = est un opérateur d’affectation, tandis que == et === sont des opérateurs de comparaison. L’égalité non stricte convertit les deux opérandes au même type, puis effectue la comparaison. Dans les vérifications conditionnelles, === est généralement utilisé pour les comparaisons d’égalité stricte car il n’effectue pas de conversion de type.
Opérateur d’affectation
= est utilisé pour affecter la valeur du côté droit à la variable du côté gauche.
Exemple :
let x = 5;let y = 'Hello';console.log(x); // Sortie 5console.log(y); // Sortie 'Hello'Dans cet exemple, = affecte la valeur du côté droit aux variables x et y du côté gauche.
Opérateurs de comparaison
== et === sont utilisés pour comparer l’égalité de deux valeurs.
Exemple :
let a = 5;let b = '5';
console.log(a == b); // Sortie trueconsole.log(a === b); // Sortie falseLors des comparaisons d’égalité avec ==, une conversion de type est effectuée, null == undefined donne true.
Lors des comparaisons d’égalité avec ===, la valeur et le type doivent être égaux, null === undefined donne false.
NaN n’est pas égal à aucune valeur, y compris NaN lui-même.
++、-- (Incrémentation, Décrémentation)
En JavaScript, l’incrémentation (++) et la décrémentation (--) sont des opérateurs utilisés pour augmenter ou diminuer la valeur d’une variable.
Opérateur d’incrémentation (++)
Après utilisation, la variable d’origine augmentera immédiatement de 1. Incrémentation préfixe renvoie la valeur après incrémentation (nouvelle valeur) ; Incrémentation suffixe renvoie la valeur avant incrémentation (ancienne valeur) ;
Exemple d’incrémentation préfixe :
let a = 5;// Incrémentation préfixe, d'abord augmente de 1, puis utilise la nouvelle valeurlet b = ++a;console.log(b); // Sortie 6console.log(a); // Sortie 6Dans cet exemple, a a d’abord augmenté de 1, puis b a obtenu la nouvelle valeur de a (6).
Exemple d’incrémentation suffixe :
let x = 5;// Incrémentation suffixe, d'abord utilise la valeur actuelle, puis augmente de 1let y = x++;console.log(y); // Sortie 5console.log(x); // Sortie 6Dans cet exemple, y a d’abord obtenu la valeur actuelle de x (5), puis la valeur de x a augmenté de 1.
Opérateur de décrémentation (—)
Après utilisation, la variable d’origine diminuera immédiatement de 1. Décrémentation préfixe renvoie la valeur après décrémentation (nouvelle valeur) ; Décrémentation suffixe renvoie la valeur avant décrémentation (ancienne valeur) ;
Exemple de décrémentation préfixe :
let p = 10;// Décrémentation préfixe, d'abord diminue de 1, puis utilise la nouvelle valeurlet q = --p;console.log(q); // Sortie 9console.log(p); // Sortie 9Dans cet exemple, p a d’abord diminué de 1, puis q a obtenu la nouvelle valeur de p (9).
Exemple de décrémentation suffixe :
let m = 8;// Décrémentation suffixe, d'abord utilise la valeur actuelle, puis diminue de 1let n = m--;console.log(n); // Sortie 8console.log(m); // Sortie 7Dans cet exemple, n a d’abord obtenu la valeur actuelle de m (8), puis la valeur de m a diminué de 1.
Priorité des opérateurs :
https://developer.mozilla.org/fr/docs/Web/JavaScript/Reference/Operators/Operator_precedence