« Précédent Suivant »

Manipulations

Expressions

Une expression est une seule unité de code JavaScript que le moteur JavaScript peut évaluer et renvoyer une valeur.

Les expressions peuvent varier en complexité.

Nous partons des plus simples, appelées expressions primaires :

2
0,02
'quelque chose'
true
false
this //la portée actuelle
undefined
i //où i est une variable ou une constante

Les expressions arithmétiques sont des expressions qui prennent une variable et un opérateur (plus d'informations sur les opérateurs bientôt), et aboutissent à un nombre:

1/2
i++
i -= 2
i * 2

Les expressions de chaîne sont des expressions qui aboutissent à une chaîne:

'Je' + 'suis du javascript'

Enfin les expressions logique, sont des opérations sur des booléens

a && b // a et b
a || b // a ou b
!b // non b

Les Opérateurs

Parlons maintenant des opérateurs. Les opérateurs vous permettent d'obtenir deux expressions simples et de les combiner pour former une expression plus complexe.

Nous pouvons classer les opérateurs en fonction des opérandes avec lesquels ils travaillent. Certains opérateurs fonctionnent avec 1 opérande. La plupart avec 2 opérandes. Un seul opérateur travaille avec 3 opérandes.

Dans cette première introduction aux opérateurs, nous présenterons les opérateurs avec lesquels vous êtes probablement familier : les opérateurs binaires.

J'en ai déjà introduit un en parlant de variables : l'opérateur d'affectation =. Vous utilisez = pour attribuer une valeur à une variable:

let a = 12
const trois = 1+2

Cet opérateur sert également à la concaténation.

Attention car javascript peut passer de l'un à l'autre!

const trois = 1+2
trois + 1 // donne 4
'trois' + 1 // donne trois1
const deux = 3-1

Effectue la division de deux number et renvoie le résultat

const res = 30 / 5 // donne 4
const res = 20 / 7 // donne 2.857142857142857

La division par 0 ne provoque pas d'erreur en Javascript mais renvoie l'infinie

2 / 0 // donne Infinity
-2 / 0 // donne -Infinity

Renvoie le reste d'une division

const res = 20 / 5 // donne 0
const res = 3 / 2 // donne 1
2**3 // donne 8 soit 2 puissance 3

La Précédence

Quel nom étrange? C'est en fait l'ordre dans lequel Javascript va faire les opérations.

Par exemple a = 1 * 2 + 5 / 2 % 2 donne 2.5

Pourquoi? Parce que certaines opérations ont plus de priorité que d'autres. Les règles de priorité sont répertoriées dans ce tableau:

Opérateur Description
* / % multiplication division
+ - addition soustraction
= affectation

Les opérations au même niveau (comme + et -) sont exécutées dans l'ordre où elles sont trouvées, de gauche à droite.

En suivant ces règles, l'opération ci-dessus peut être résolue de la manière suivante:

a = 1 * 2 + 5 / 2 % 2

a = 2 + 5 / 2 % 2

a = 2 + 2,5 % 2

a = 2 + 0,5

a = 2,5 

Comparaison

Après l'affectation et les opérateurs mathématiques, le troisième ensemble d'opérateurs que je souhaite introduire est celui des opérateurs conditionnels.

Vous pouvez utiliser les opérateurs suivants pour comparer deux nombres ou deux chaînes.

Les opérateurs de comparaison renvoient toujours un booléen, une valeur vraie ou fausse).

Ce sont des opérateurs de comparaison de diségalité:

Exemple:

let a = 2
a >= 1 // true

En plus de ceux-ci, nous avons 4 opérateurs d'égalité. Ils acceptent deux valeurs et renvoient un booléen :

Notez que nous avons également == et != en JavaScript, mais je suggère fortement de n'utiliser que === et !== car ils peuvent éviter certains problèmes subtils.

Conditionnel

Avec les opérateurs de comparaison en place, nous pouvons parler de conditions.

Une instruction if est utilisée pour que le programme emprunte une route, ou une autre, en fonction du résultat d'une évaluation d'expression.

C'est l'exemple le plus simple, qui exécute toujours :

if (true) {
  //faire quelque chose
}

au contraire, ceci n'est jamais exécuté :

if (false) {
  // faire quelque chose (? jamais ?)
}

La condition vérifie l'expression que vous lui transmettez pour une valeur vraie ou fausse. Si vous transmettez un nombre, il est toujours évalué à true sauf s'il s'agit de 0. Si vous transmettez une chaîne, il est toujours évalué à true sauf s'il s'agit d'une chaîne vide. Ce sont des règles générales de conversion des types en booléen.

Avez-vous remarqué les accolades ? C'est ce qu'on appelle un bloc, et il est utilisé pour regrouper une liste de différentes déclarations.

Un bloc peut être placé partout où vous pouvez avoir une seule instruction. Et si vous avez une seule instruction à exécuter après les conditions, vous pouvez omettre le bloc et simplement écrire l'instruction:

if (true) faireQuelqueChose()

Et sinon

Nous pouvons ajouter une autre action si la condition est fausse en ajoutant else.

if (true) {
    // faire quelque chose
} else {
    // faire autre chose
}

Et on peut aussi emboiter des conditions les unes dans les autres

if ( a === true ){
    // faire quelque chose
} else if ( b === true){
    // faire autre chose
} else {
    // encore autre chose
}

Les ternaires

Il existe un autre moyen de gérer les conditions. Cette fois c'est un opérateur.

Vous rencontrerez souvent cette syntax plus facile à écrire mais parfois plus difficile à lire.

condition ? exprSiVrai : exprSiFaux

Exemple:

const nombre = 4

( nombre % 2 === 0 ) ? console.log("Ce nombre est pair") : console.log("Ce nombre est impaire")
// renvoie en console Ce nombre est pair




Pour plus d'opérateurs allez regarder sur la doc de mozilla ici