Notes techniques de zhaoJian

Cours IT Bases JavaScript 040_Opérateurs

Apprentissage / Bases JavaScript ~12913 mots · 33 min de lecture - vues

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 7
console.log(a - b); // Sortie 3
console.log(a * b); // Sortie 10
console.log(a / b); // Sortie 2.5
console.log(a % b); // Sortie 1
console.log(a**b); // Sortie 25

Opé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 7
x -= 2; // x = x - 2; Sortie 3
x *= 2; // x = x * 2; Sortie 10
x /= 2; // x = x / 2; Sortie 2.5
x %= 2; // x = x % 2; Sortie 1
x **= 2; // x = x ** 2; Sortie 25
x ??= 2; // Sortie 5, affecte 2 lorsque x est null ou undefined
console.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 égales
console.log(a === b); // Sortie false, les types ne sont pas égaux
console.log(a != b); // Sortie false, les valeurs sont égales
console.log(a !== b); // Sortie true, les types ne sont pas égaux
console.log(a > c); // Sortie false, 5 < 10
console.log(a < c); // Sortie true, 5 < 10
console.log(a >= c); // Sortie false, 5 <= 10
console.log(a <= c); // Sortie true, 5 <= 10

Opé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 false
console.log(c && d); // Sortie null
console.log(a || b); // Sortie true
console.log(c || d); // Sortie hello
console.log(!a); // Sortie false
console.log(!d); // Sortie true

Opérateur ternaire

  • condition ? expr1 : expr2 : Si la condition est vraie, renvoie expr1, sinon renvoie expr2.

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éfini

Opé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 : 0101
let 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 8

Si 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 42

En 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 2

Si 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 -42

En 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 32

Si 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 8

Dans 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 5
console.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 true
console.log(a === b); // Sortie false

Lors 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 valeur
let b = ++a;
console.log(b); // Sortie 6
console.log(a); // Sortie 6

Dans 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 1
let y = x++;
console.log(y); // Sortie 5
console.log(x); // Sortie 6

Dans 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 valeur
let q = --p;
console.log(q); // Sortie 9
console.log(p); // Sortie 9

Dans 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 1
let n = m--;
console.log(n); // Sortie 8
console.log(m); // Sortie 7

Dans 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

Partager :

Commentaires