Visit Mozilla.org

Guide JavaScript 1.5:Opérateurs:Opérateurs logiques

Un article de MDC.


[modifier] Opérateurs logiques

Les opérateurs logiques sont généralement employés avec des valeurs booléennes (ou logiques) ; lorsque c'est le cas, ils renvoient une valeur booléenne. Toutefois, les opérateurs && et || renvoient en fait la valeur de l'une des opérandes spécifiées, ce qui signifie que si ces opérateurs sont employés avec des valeurs non-booléennes, ils peuvent renvoyer une valeur non-booléenne. Les opérateurs logiques sont décrits dans le tableau suivant.

Opérateur Emploi Description
&& expr1 && expr2 (ET logique) Renvoie expr1 si celle-ci peut être convertie en la valeur false ; sinon, renvoie expr2. Ainsi, lorsqu'utilisé avec des valeurs booléennes, && renvoie true si les deux opérandes sont true ; sinon, il renvoie false.
|| expr1 || expr2 (OU logique) Renvoie expr1 si celle-ci peut être convertie en la valeur true ; sinon, renvoie expr2. Ainsi, lorsqu'utilisé avec des valeurs booléennes, || renvoie true si l'un des deux opérandes est true ; si les deux opérandes sont false, il renvoie false.
! !expr (NON logique) Renvoie false si son opérande unique peut être converti en la valeur true ; sinon, renvoie true.

Tableau : Opérateurs logiques

Les expressions qui renvoient null, 0, la chaîne vide "" ou l'objet undefined lorsqu'évaluées sont des exemples d'expression pouvant être converties en la valeur false.

Le code suivant illustre l'opérateur && (ET logique).

a1 = true && true       // t && t renvoie true
a2 = true && false      // t && f renvoie false
a3 = false && true      // f && t renvoie false
a4 = false && (3 == 4)  // f && f renvoie false
a5 = "Chat" && "Chien"  // t && t renvoie Chien
a6 = false && "Chat"    // f && t renvoie false
a7 = "Chat" && false    // t && f renvoie false

Le code suivant illustre l'opérateur || (OU logique).

o1 = true || true       // t || t renvoie true
o2 = false || true      // f || t renvoie true
o3 = true || false      // t || f renvoie true
o4 = false || (3 == 4)  // f || f renvoie false
o5 = "Chat" || "Chien"  // t || t renvoie Chat
o6 = false || "Chat"    // f || t renvoie Chat
o7 = "Chat" || false    // t || f renvoie Chat

Le code suivant illustre l'opérateur ! (NON logique).

n1 = !true              // !t renvoie false
n2 = !false             // !f renvoie true
n3 = !"Chat"            // !t renvoie false


[modifier] Évaluation des expressions logiques

Comme les expressions logiques sont évaluées de gauche à droite, un « court-circuit » au cours de l'évaluation est possible grâce aux règles suivantes :

  • L'expression false && quelque chose est évaluée directement comme étant false.
  • L'expression true || quelque chose est évaluée directement comme étant true.

Les règles de logique garantissent l'exactitude de ces évaluations raccourcies. Notez que la partie quelque chose dans les expressions ci-dessus n'est jamais évaluée, et donc tout effet secondaire qui serait lié à cette évaluation n'aura pas lieu.