Les opérateurs logiques sont généralement utilisés avec des valeurs booléennes. Dans ce cas, il renvoient une valeur booléenne. Les opérateurs && et || renvoient en fait une valeurs d'un des opérandes et si ces opérateurs sont utilisés avec des valeurs non-booléennées, ils pourront renvoyer une valeur non-booléenne. Les opérateurs logiques sont décrits dans le tableau qui suit.
Opérateur | Usage | Description |
---|---|---|
ET logique (&&) | expr1 && expr2 | Renvoie expr1 s'il peut être converti à false, sinon renvoie expr2. Dans le cas où on utilise des opérandes booléens, && renvoie true si les deux opérandes valent true, false sinon. |
OU logique (||) | expr1 || expr2 | Renvoie expr1 s'il peut être converti à true, sinon renvoie expr2. Dans le cas où on utilise des opérandes booléens, || renvoie true si l'un des opérandes vaut true, si les deux valent false, il renvoie false. |
NON logique (!) | !expr | Renvoie false si son unique opérande peut être converti en true, sinon il renvoie true. |
Les exemples d'expressions qui peuvent être converties à false sont celles qui sont évaluées à null, 0, NaN, la chaîne de caractères vide (""), ou undefined.
Le code qui suit montre des exemples de l'utilisation de l'opérateur logique ET (&&).
var a1 = true && true; // t && t renvoie true var a2 = true && false; // t && f renvoie false var a3 = false && true; // f && t renvoie false var a4 = false && (3 == 4); // f && f renvoie false var a5 = "Chat" && "Chien"; // t && t renvoie Chien var a6 = false && "Chat"; // f && t renvoie false var a7 = "Chat" && false; // t && f renvoie false
Les exemples suivants montrent l'utilisation de l'opérateur logique OU (||).
var o1 = true || true; // t || t renvoie true var o2 = false || true; // f || t renvoie true var o3 = true || false; // t || f renvoie true var o4 = false || (3 == 4); // f || f renvoie false var o5 = "Chat" || "Chien"; // t || t renvoie Chat var o6 = false || "Chat"; // f || t renvoie Chat var o7 = "Chat" || false; // t || f renvoie Chat
Les exemples suivants montrent l'utilisation de l'opérateur logique NON (!).
var n1 = !true; // !t renvoie false var n2 = !false; // !f renvoie true var n3 = !"Chat"; // !t renvoie false
Les expressions logiques sont évaluées de gauche à droite. Cette évaluation utilise des tests pour savoir s'il est possible d'utiliser des « raccourcis » correspondant aux règles suivantes :
Les règles logiques garantissent la validité de ces évaluations, il faut noter que le second opérande n'est pas du tout évalué, empêchant ainsi les effets de bords cachés, liés à cette évaluation.