
Les opérateurs
Vous êtes ici : Accueil / Cours / Cours de Javascript / Débuter en Javascript
Nous allons maintenant nous intéresser à la manipulation des données. Comme nous l’avons vu, les variables ne sont pas typées, mais les données le sont. Pour rappel, il existe 5 types de données : les nombres entiers, les nombres décimaux, les chaînes de caractère, les booléens et les objets.
Il est possible de regrouper les opérateurs suivant plusieurs types de catégories : en fonction des données qu’ils manipulent ou en fonction de leur type d’action. Nous allons essayer de combiner au mieux les 2.
La plupart des opérateurs que nous présenterons seront des opérateurs binaires, c’est à dire qu’ils s’appliquent sur 2 données et renvoient 1 donnée. Par exemple, l’addition s’applique sur 2 nombres et renvoie un nombre qui est la somme des 2 autres.
Les opérateurs mathématiques
Les opérations mathématiques de base sont disponibles sous forme des opérateurs suivants :
+ pour l’adition
- pour la soustraction
/ pour la division
* pour la multiplication
% pour le reste de la division euclidienne
Ils s’appliquent bien entendu à des nombres entiers ou décimaux.
Prenons un petit exemple :
var multiplication = 7*2; // multiplication vaut 14
var somme = 6+6; // somme vaut 12
var soustraction = 11 - 2; // soustraction vaut 19
var euclide = 10 % 3; // euclide vaut 1
Les opérateurs d’affectation
Un opérateur d’affectation sert à modifier le contenu d’une variable en lui assignant une nouvelle valeur.
Le premier opérateur d’affectation a déjà été vu sans être nommé comme tel : c’est le égal ( = ).
Les autres opérateurs d’affectation sont en fait de simples raccourcis mis à la disposition des développeurs pour les opérations répétitives. Ils n’apportent aucune nouvelle manipulation, mais simplifient la vie :
var multiplication = 7;
var somme = 6;
var soustraction = 11;
var euclide = 10;
division /= 3; // équivaut à division = division / 3
multiplication *= 7; // équivaut à multiplication = multiplication * 7
somme += 6; // équivaut à somme = somme + 6
soustraction -= 2; // équivaut à soustraction = soustraction - 2
euclide %= 3; // équivaut à euclide = euclide % 3
Pré/Post incrémentation/décrémentation
Les opérateurs d’affectation présentés précédemment sont des raccourcis de l’opérateur égal ( = ) car ces opérations étaient effectuées souvent.
Cependant, il existe des opérations répétitives encore plus spécifiques et d’autres raccourcis ont été créés : les incrémentations et décrémentation.
Cette appellation bien qu’impressionnante, exprime l’idée toute simple que l’on ajoute 1 à la valeur de la variable, ou qu’on lui retire 1 ( dans le cadre d’une décrémentation ).
i++; // équivaut à i += 1 ou à i = i + 1
// i vaut 6
i--; // équivaut à i -= 1 ou à i = i - 1
// i vaut 5
Les opérateurs présentés sont respectivement des post incrémentations et post décrémentations.
Il existe des pré incrémentations :
++i; // équivaut à i += 1 ou à i = i + 1
// i vaut 6
--i; // équivaut à i -= 1 ou à i = i - 1
// i vaut 5
Mais alors quelle est la différence ? Tout simplement, l’ordre d’exécution. Pour mettre la différence en valeur, nous allons de nouveau avoir recours à la fonction alert() qui affiche dans une boite de dialogue ce qui est passé en paramètre.
alert( i++ ); // Affiche 5
// i vaut 6
alert( ++i ); // Affiche 7
Comme vous le voyez, l’opération d’incrémentation s’est effectuée après l’affichage lors d’une post incrémentation.
Les opérateurs de comparaison
Il est très utile de pouvoir comparer des données, par exemple pour savoir laquelle est la plus grande des 2. Les opérateurs de comparaison prennent en paramètre 2 données et retournent un booléen qui vaut true ou false. Voici une liste d’opérateurs de comparaison :
== Comparaison entre 2 valeurs.
=== Comparaison entre 2 valeurs et entre leurs types ( voir les objets )
> Opérateur de stricte supériorité ( 3 > 2 retourne true mais 3 > 3 retourne false )
< Opérateur de stricte infériorité ( 2 < 3 retourne true mais 3 < 3 retourne false )
>= Opérateur "supérieur ou égal" ( 2 >= 2 retourne true )
<= Opérateur "inférieur ou égal" ( 2 <= 2 retourne true )
!= Opérateur "différent de" ( 3 != 2 retourne true ) ;
!== Opérateur "différent de" avec vérification des types. ( voir les objets )
Attention : le égal et < > ! ne peuvent pas s’intervertir. =< générera un message d’erreur.
Remarque : Les opérateurs de supériorité et d’infériorité peuvent également s’appliquer aux chaînes de caractères : en effet, un caractère est encodé selon les normes ASCII, or il se trouve que leurs valeurs suivent l’ordre alphabétique. Ainsi, ’A’ < ’E’ retourne true.
Les opérateurs logiques
Les opérateurs logiques sont des opérations effectuées sur une ou plusieurs valeurs booléennes et qui retournent un booléen. Pour chaque opérateur logique, nous allons donner la table de vérité. Voici la liste des opérateurs logiques :
&& Correspond au ET logique
Voici la table de vérité du ET :
| a | b | a && b |
| false | false | false |
| false | true | false |
| true | false | false |
| true | true | true |
|| Correspond au OU logique
Voici la table de vérité du OU :
| a | b | a || b |
| false | false | false |
| false | true | true |
| true | false | true |
| true | true | true |
! Correspond au NON logique. C’est un opérateur unaire, c’est à dire qu’il ne s’applique qu’à une valeur.
Voici la table de vérifé du NON :
| a | !a |
| false | true |
| true | false |
L’opérateur de concaténation
Une concaténation est l’ajout bout à bout de 2 chaines de caractères. ( Javascript accepte également de concaténer une chaine de caractère et un nombre. Le résultat sera une chaîne )
L’opérateur de concaténation est le + L’opérateur d’affectation qui lui correspond est le +=
Attention ! ne confondez pas l’opérateur de concaténation et l’opérateur d’adition. Même si les symboles utilisés sont les mêmes, l’opération, elle, est totalement différente :
var j = '2';
alert( i + 3 ); // Affiche 5
alert( j + 3 ); // Affiche 23
La première opération a été une adition. La seconde une concaténation. Dès lors qu’une chaîne de caractère entre en jeu, le + devient l’opérateur de concaténation.
Les opérateurs binaires
Ces opérateurs sont assez peu usités en Javascript. Il n’est pas essentiel de les maîtriser pour réaliser des applications web. Pour les comprendre, il est nécessaire de faire une petite introduction au binaire :
Un ordinateur ne peut manipuler que des données binaires ( une suite de 0 et de 1 ). Toute donnée manipulée est traduite en binaire de manière transparente pour le développeur. Il est cependant possible d’effectuer directement des opérations sur les bits.
Un bit valant 0 ou 1, il est facilement assimilable à un booléen.
Les opérateurs bit à bit sont au fait des opérateurs logiques qui s’exécutent sur chaque bit indépendamment des autres. En voici la liste :
& Correspond au ET logique sur chaque bit
| Correspond au OU logique sur chaque bit
^ Correspond au OU exclusif logique sur chaque bit
Voici la table de vérité du OU exclusif :
| a | b | a | b |
| false | false | false |
| false | true | true |
| true | false | true |
| true | true | false |
Parmi les opérateurs agissant au niveau binaire, il existe des opérateurs de décalage. Ils effectuent tout simplement une rotation ou un décalage des bits vers la gauche ou la droite.
<< Effectue une rotation de n bits vers la gauche
>> Effectue une rotation de n bits vers la droite
>>> Décale les bits à droite et remplis les bits de gauche avec des 0
~ Non binaire : effectue un NON sur chacun des bits.
Nous ne détaillerons pas ces opérateurs. Si vous voulez vous documenter dessus, consultez la documentation officielle de firefox.
L’opérateur typeof
Il est souvent nécessaire de connaître le type d’une donnée avant de la manipuler. L’opérateur typeof permet de préciser quel est le type de la donnée précisée après le mot-clé.
alert( typeof "Hello World" );
Les autres opérateurs
Il existe quelques autres opérateurs comme instanceof ou l’opérateur ternaire. Ils seront expliqués plus loin dans le cours.



