Opérateurs

= Donner une valeur: affectation

En JavaScript, le signe "=" permet d'attribuer une nouvelle valeur à une variable:


si a est une variable:

  • a=3; revient à dire: a prend comme nouvelle valeur 3.

  • a=b; revient à dire: a prend comme nouvelle valeur la valeur de b.

  • a=prompt("Ecrivez la valeur de a"); revient à dire: a prend comme nouvelle valeur ce qu'à écrit l'utilisateur dans le prompt.

  • a=b+7; revient à dire: a prend comme nouvelle valeur (la valeur de b à laquelle on a ajouté 7).

  • a=a+2; revient à dire: a prend comme nouvelle valeur (sa valeur plus deux), c'est à dire que a est augmenté de 2.

  • a=a+b; revient à dire: a prend comme nouvelle valeur (sa valeur plus la valeur de b), c'est à dire que a est augmenté de la valeur de b. C'est donc totalement différent de l'égalité mathématique (sinon, pour que a vaille a +b, il faudrait que b=0)


== et === Verification de l'égalité : Deux valeurs sont-elles semblables?

En JavaScript, on peut vérifier que deux valeurs sont semblables. Une manière de faire est d'utiliser "==" . L'opérateur == permet de voir si des valeurs sont semblables, même si elles sont de types différents:

  • 2==2 est vrai,

  • "2"=="2" est vrai, et

  • 2=="2" sera vrai (leur valeur sera true).


Une autre manière de faire est d'utiliser "===" . L'opérateur === permet de voir si des valeurs sont semblables et de même type :

  • 2==2 est vrai,

  • "2"=="2" est vrai (leur valeur sera true), mais

  • 2=="2" sera faux (sa valeur sera false car un est un Number et l'autre est une chaine de caratère).


Une grande différence entre == et === porte sur les valeurs qui sont intérprétées comme false ou true et qui vont être == à false ou true mais pas === à false ou true (vous pouvez vous référer à la section sur les types booléens).


Il existe également Object.is(x,y) qui considère que -0 et +0 sont différents et que NaN et NaN (Not A Number) sont égaux, contrairement à == et ===.

Ressource: le tableau à ce lien https://developer.mozilla.org/fr/docs/Web/JavaScript/Guide/%C3%89galit%C3%A9_en_JavaScript

!= et !== Vérification de la différence: Deux valeurs sont-elles dissemblables ?

En JavaScript, on peut vérifier que deux valeurs sont dissemblables. Une manière de faire est d'utiliser "!=" . L'opérateur != permet de voir si des valeurs sont dissemblables, même si elles sont de types différents:

  • 2!=2 est false (ce n'est pas dissemblable),

  • 2!=3 est true (c'est dissemblable),

  • "2"!="2" est false

  • "2"!="3" est true

  • 2!="2" sera false (ce n'est pas dissemblable)


Une autre manière de faire est d'utiliser "===" . L'opérateur === permet de voir si des valeurs sont dissemblables et de type différents :

  • 2!==2 est false (ce n'est pas dissemblable),

  • 2!==3 est true (c'est dissemblable),

  • "2"!=="2" est false

  • "2"!=="3" est true

  • 2!=="2" sera true (c'est dissemblable car le type est différent)


Une grande différence entre != et !== porte sur les valeurs qui sont intérprétées comme false ou true et qui vont être != à false ou true mais pas !== à false ou true (vous pouvez vous référer à la section sur les types booléens).

+ Addition (Nombre)

Pour les nombres (types Number et BigInt), il est possible d'additionner des nombres ou des variables de ce type avec l'opérateur "+".

  • 3+4 ajoute le premier chiffre 3 au deuxième 4 et vaut 7

  • 3n+4n ajoute le premier chiffre 3n au deuxième 4n et vaut 7n

  • b+5 ajoute la valeur 5 à b si b est un nombre Number

  • b+5n ajoute la valeur 5 à b si b est un nombre BigInt

  • b+c ajoute la valeur de c à b s'ils sont tous les deux des Number

  • b+c ajoute la valeur de c à b s'ils sont tous les deux des BigInt

  • L'ordre ne change pas le résultat:

    • 3+4 vaut la même chose de 4+3

    • 3n+4n vaut la même chose de 4n+3n

    • 5+b vaut la même chose que b+5

    • 5n+b vaut la même chose que b+5n

    • b+c vaut la même chose que c+b



+ Concatenation (accoller deux bouts de texte)

Pour les chaines de caractères (type String), il est de coller entre elles deux String ou des variables de ce type avec l'opérateur "+".

  • "debut"+"fin" colle les deux valeurs ensemble : "debutfin"

  • "debut"+" "+ "fin" donne "debut fin" en collant les trois valeurs ensemble

  • "5"+"3" donne 53

  • 5+"3" donne 53

  • "5"+ 3 donne 53

  • b+"chaine" ajoute les caractères "chaine" à la fin de b

  • b+5n ajoute le caractère 5 à la fin de b si b est une chaine de caractère

  • b+c ajoute les catactère de c à la fin de b si l'un des deux est une chaine de caractères

  • L'ordre change le résultat:

    • 3+"4" vaut "34" et "4"+3 vaut "43"

    • le deuxième élément est concaténé à la suite du premier



- Soustration

Pour les nombres (types Number et BigInt), il est possible de soustraire des nombres ou des variables de ce type avec l'opérateur "-".

  • 4-3 soustrait le chiffre 3 à 4 et vaut 1

  • 4n-3n soustrait le chiffre 3n à 4n et vaut 1n

  • b-5 soustrait la valeur 5 à b si b est un nombre Number

  • b-5n soustrait la valeur 5 à b si b est un nombre BigInt

  • b-c soustrait la valeur de c à b s'ils sont tous les deux des Number

  • b-c soustrait la valeur de c à b s'ils sont tous les deux des BigInt

  • L'ordre change le résultat:

    • 3-4 ne vaut pas la même chose de 4+3

    • 3n-4n ne vaut pas la même chose de 4n-3n

    • 5-b ne vaut pas la même chose que b-5

    • 5n-b ne vaut pas la même chose que b-5n

    • b-c ne vaut pas la même chose que c-b


* Multiplication

Pour les nombres (types Number et BigInt), il est possible de multiplier des nombres ou des variables de ce type avec l'opérateur "*".

  • 3*4 multiplie le premier chiffre 3 par le deuxième 4 et vaut 12

  • 3n*4n multiplie le premier chiffre 3n par le deuxième 4n et vaut 12n

  • b*5 multiplie la valeur 5 par b si b est un nombre Number

  • b*5n multiplie la valeur 5 par b si b est un nombre BigInt

  • b*c multiplie la valeur de c par b s'ils sont tous les deux des Number

  • b*c multiplie la valeur de c par b s'ils sont tous les deux des BigInt

  • L'ordre ne change pas le résultat:

    • 3*4 vaut la même chose de 4*3

    • 3n*4n vaut la même chose de 4n*3n

    • 5*b vaut la même chose que b*5

    • 5n*b vaut la même chose que b*5n

    • b*c vaut la même chose que c*b


/ Division

Pour les nombres (types Number et BigInt), il est possible de diviser des nombres ou des variables de ce type avec l'opérateur "/".

  • 4/3 divise le chiffre 4 par 3 et vaut 1.3333333333

  • 4n/3n divise le chiffre 4n à 3n et vaut 1n

  • b/5 divise b par 5 si b est un nombre Number

  • b/5n divise b par 5 si b est un nombre BigInt

  • b/c divise b par c s'ils sont tous les deux des Number

  • b/c divise b par c s'ils sont tous les deux des BigInt

  • L'ordre change le résultat:

    • 3/4 ne vaut pas la même chose de 4/3

    • 3n/4n ne vaut pas la même chose de 4n/3n

    • 5/b ne vaut pas la même chose que b/5

    • 5n/b ne vaut pas la même chose que b/5n

    • b/c ne vaut pas la même chose que c/b



% Reste de la division (Modulo)

Pour les nombres (types Number et BigInt), il est possible de récupérer le reste de la division entière pour des nombres ou des variables de ce type avec l'opérateur "%". Si le reste de la division entière b%c (b modulo c) vaut 0, cela indique de b est un multiple de c. Si le reste de la division entière b%c (b modulo c) est différente de 0, cela indique de b n'est PAS un multiple de c.

  • 5%3 donne le reste de la division de 5 par 3 et vaut 2 (5=1*3+2)

  • 4n%3n donne le reste de la division de 4n à 3n et vaut 1n (4=1*3+1)

  • b%5 donne le reste de la division de b par 5 si b est un nombre Number

  • b%5n donne le reste de la division de b par 5 si b est un nombre BigInt

  • b/c donne le reste de la division de b par c s'ils sont tous les deux des Number

  • b/c donne le reste de la division de b par c s'ils sont tous les deux des BigInt

  • L'ordre change le résultat:

    • 3%4 ne vaut pas la même chose de 4%3

    • 3n%4n ne vaut pas la même chose de 4n%3n

    • 5%b ne vaut pas la même chose que b%5

    • 5n%b ne vaut pas la même chose que b%5n

    • b%c ne vaut pas la même chose que c%b


+= et ++ Incrémentation (ajout à la valeur actuelle)

Pour les nombres (types Number et BigInt) et les chaines de caractères (type String), il est possible de faire une addition et une affectation en même temps dans des variables de ce type avec les opérateurs "+=" et "++". Si on a une variable b, b+=c est équivalent à b=b+c. Par ailleurs, b++ est équivalent à b=b+1 et donc à b+=1. Cela veut dire qu'on ne peux PAS utiliser ces opérateurs sans au moins une variable: 6++ et 6+=1 équivaudrait à 6=6+1 ce qui n'a pas de sens.

  • b+=4 ajoute 4 à b si c'est un Number

  • b+=4n ajoute 4 à b si c'est un BigInt

  • b+=4 concaténe "4" à b si b est une String

  • b+=4n concaténe "4" à b si b est une String

  • b+=c ajoute c à b si ce sont des Number

  • b+=c ajoute c à b si ce sont des BigInt

  • b+=c concaténe c à b si ce sont des String

  • b+=c concaténe String(c) à b si b est une String mais pas c. Rappel: String (maVariable) convertit la variable maVariable en chaine de caractères

  • b++ ajoute 1 à b si c'est un Number ou un BigInt. Si b est une String qui peut être évalué comme un Number (par exemple "17653" mais pas "15n"), b sera converti en Number et se verra ajouter 1. Sinon, le résultat sera "NaN" (Not a Number)


-= et -- Décrémentation (soustraction à la valeur actuelle)

Pour les nombres (types Number et BigInt), il est possible de faire une soustraction et une affectation en même temps dans des variables de ce type avec les opérateurs "-=" et "--". Si on a une variable b, b-=c est équivalent à b=b-c. Par ailleurs, b- est équivalent à b=b-1 et donc à b-=1. Cela veut dire qu'on ne peux PAS utiliser ces opérateurs sans au moins une variable: 6-- et 6-=1 équivaudrait à 6=6-1 ce qui n'a pas de sens.

  • b-=4 soustrait 4 à b si c'est un Number

  • b-=4n soustrait 4 à b si c'est un BigInt

  • b-=c soustrait c à b si ce sont des Number

  • b-=c soustrait c à b si ce sont des BigInt

  • b-- soustrait 1 à b si c'est un Number ou un BigInt. Si b est une String qui peut être évalué comme un Number (par exemple "17653" mais pas "15n"), b sera converti en Number et se verra soustraire 1. Sinon, le resultat sera "NaN" (Not a Number)


*= Démultiplication (multiplication à la valeur actuelle)

Pour les nombres (types Number et BigInt), il est possible de faire une multiplication et une affectation en même temps dans des variables de ce type avec l'opérateur "*=". Si on a une variable b, b*=c est équivalent à b=b*c. Cela veut dire qu'on ne peux PAS utiliser cet opérateur sans au moins une variable: 6*=2 équivaudrait à 6=6*2 ce qui n'a pas de sens.

  • b*=4 multiplie b par 4 si c'est un Number

  • b*=4n multiplie b par 4 si c'est un BigInt

  • b*=c multiplie b par c si ce sont des Number

  • b*=c multiplie b par c si ce sont des BigInt



/= Subdivision (division de la valeur actuelle)

Pour les nombres (types Number et BigInt), il est possible de faire une division et une affectation en même temps dans des variables de ce type avec l'opérateur "/=". Si on a une variable b, b/=c est équivalent à b=b/c. Cela veut dire qu'on ne peux PAS utiliser cet opérateur sans au moins une variable: 6/=2 équivaudrait à 6=6/2 ce qui n'a pas de sens.

  • b/=4 divise b par 4 si c'est un Number

  • b/=4n divise (division entière) b par 4 si c'est un BigInt

  • b/=c divise b par c si ce sont des Number

  • b/=c divise (division entière) b par c si ce sont des BigInt


< et <= Comparaison Inférieur et Inférieur ou égal

Pour les nombres (types Number et BigInt) et les chaines de caractères, il est possible de comparaison d'infériorité ou d'infériorité/égalité avec respectivement "<" et "<=".

  • b<c est true si ce sont deux Number et que b est strictement inférieur à c (faux si b est égal à c), false sinon

  • b<c est true si ce sont deux BigInt et que b est strictement inférieur à c (faux si b est égal à c), false sinon

  • b<c est true si ce sont deux String et que b est avant c en termes d'ordre alphabétique (faux si b est égal à c), false sinon

  • si on essaie de comparer b<c et que un seul des deux est un Number, l'autre sera converti en Number si cela est possible et la comparaison se fera sur des Number

  • l'operateur <= rend les expressions précédentes true également si b est égal à c


>et >= Comparaison Supérieur et Supérieur ou égal

Pour les nombres (types Number et BigInt) et les chaines de caractères, il est possible de comparaison de supériorité ou de supériorité/égalité avec respectivement ">" et ">=".

  • b>c est true si ce sont deux Number et que b est strictement supérieur à c (faux si b est égal à c), false sinon

  • b>c est true si ce sont deux BigInt et que b est strictement supérieur à c (faux si b est égal à c), false sinon

  • b>c est true si ce sont deux String et que b est après c en termes d'ordre alphabétique (faux si b est égal à c), false sinon

  • si on essaie de comparer b>c et que un seul des deux est un Number, l'autre sera converti en Number si cela est possible et la comparaison se fera sur des Number

  • l'operateur >= rend les expressions précédentes true également si b est égal à c


&&: AND / ET Logique

Le ET logique est un opérateur sur les booléens. Pour que b && c soit vrai, il faut que b soit vrai et c soit vrai

  • b && c vaut true si b vaut true et c vaut true

  • b && c vaut false si b vaut true et c vaut false

  • b && c vaut false si b vaut false et c vaut true

  • b && c vaut false si b vaut false et c vaut false


Rappel: vous pouvez vous référez à la section Booleens de la page Type pour vérifier les valeurs qui valent true et false.


||: OR / OU Logique

Le OU logique est un opérateur sur les booléens. Pour que b || c soit vrai, il faut que au moins l'un des deux soit vrai.

  • b || c vaut true si b vaut true et c vaut true

  • b || c vaut true si b vaut true et c vaut false

  • b || c vaut true si b vaut false et c vaut true

  • b ||c vaut false si b vaut false et c vaut false


Rappel: vous pouvez vous référez à la section Booleens de la page Type pour vérifier les valeurs qui valent true et false.