Les valeurs truthy et falsy en JavaScript

Que signifient les concepts de “truthy” et “falsy” en JavaScript ? Quelles valeurs sont considérées comme “truthy” et “falsy” ?

Concept de truthy et falsy

Le langage JavaScript a la notion de valeurs “truthy” et “falsy”, qu’on pourrait traduire par valeurs “à peu près vraies” et “à peu près fausses”.

Concrètement, cela signifie que des valeurs qui ne sont pas strictement “true” se comportent comme le booléen true, et des valeurs qui ne sont pas strictement “false” se comportent comme le booléen false, lorsqu’elles sont évaluées dans un contexte booléen.

Par exemple, dans le code ci-dessous, le bloc if sera exécuté car une chaîne non vide comme “foo” est une valeur truthy et se comporte comme le booléen true.

if ("foo") {
  // Ce code sera exécuté, car "foo" est considéré comme true
}

L’intérêt est de simplifier le code en ne contraignant pas le développeur à convertir une valeur en booléen strict.

C’est pratique quand on veut exécuter une série d’instructions uniquement si on a des données sur lesquelles travailler. Dans ce cas, il est facile d’écrire quelque chose comme ça :

if (mesDonnees) {
  // Ce code sera exécuté seulement si on a des données.
}

Peu importe le type exact de la variable mesDonnees, on veut juste s’assurer qu’elle est “non vide” pour continuer.

En inversant le test, on peut facilement vérifier qu’une valeur est “vide” ou falsy : if (!mesDonnees)

Exemples de valeurs truthy en JavaScript

Parmi les valeurs truthy, on trouve :

if (true)   // booléen true
if ("foo")  // chaîne non vide
if (42)     // nombre positif
if (-42)    // nombre négatif
if ({})     // objet vide
if ([])     // tableau vide

Exemples de valeurs falsy en JavaScript

Parmi les valeurs falsy, on trouve :

if (false)       // booléen false
if ("")          // chaîne vide
if (0)           // nombre 0
if (null)        // valeur null
if (undefined)   // valeur undefined
if (NaN)         // valeur NaN

 

Cette recette vous a plus ? Rejoignez-nous à Paris pour une formation Angular de 3 jours dans laquelle vous coderez une application professionnelle que vous déploierez en production.

Le jour où j'ai enfin compris Angular