Truthy and Falsy

Dans le monde booléen, une valeur ne peut être que vraie (true) ou fausse (false). Lorsqu'il est question de convertir des valeurs dans ce type, il y a des spécificités importantes à comprendre et surtout à respecter. Si nous devions résumer ce concept, il existe des valeurs “vraies” et “fausses” qui ne sont pas forcément vraies ou fausses, mais qui le deviennent lorsque nous les convertissons.

Falsy

Il existe un nombre fini de valeurs qui seront interprétées comme “fausses”, nous en verrons 5:

0
Zéro étant interprété comme "false".

""
Une chaîne de caractère vide est interprétée comme "false".

Undefined
Là aussi, pas de valeur définie donc renvoi "false".

Null
Aucune valeur associée donc "false".

NaN
Et enfin, lorsqu'un chiffre n'est pas valide, nous sommes aussi dans la valeur "false".

En voyant cette liste, il est plus clair de comprendre le fait que certaines valeurs ne sont pas “fausses” mais vont le devenir suite à une conversion.

Truthy

On peut donc déduire la valeur interprétée en tant que “vraies” suite au point précédent. Toutes les autres valeurs seront donc des valeurs converties en “true”. Par exemple, si une chaine de caractère n'est pas vide, ou si un nombre n'est pas “0”.

Conversion booléenne

Pour convertir une valeur en type booléen, il suffit, comme pour la conversion des chiffres et des chaines de caractères, d'ajouter la valeur dans l'argument de la fonction "Boolean( … )".

Par exemple:

console.log(Boolean(0)) //Qui nous renvoi "false"

Nous pouvons aussi faire un test concernant les valeurs qui devraient être “vraie”:

console.log(Boolean("accolade")) //Qui nous renvoi "true"

Il y a peu de cas pratiques ou vous devrez convertir des valeurs en booléen. Ce qui est par contre plus commun est la coercition. C'est à dire, que c'est votre langage, ici le JavaScript, qui convertira lui même, de manière dynamique, des opérations de valeur différentes en valeurs booléennes.

Coercition booléenne

La coercition se produit dans deux cas particuliers. Lorsque l'on utilise des opérateurs spécifiques, ou lorsque l'on se trouve dans un contexte logique.

Les opérateurs
Nous allons surtout nous focaliser sur les opérateurs logiques ainsi que les opérateurs de comparaisons. Il existe d'autres opérateurs et ils partagent toute la même idée, le fait de comparer d'une manière ou d'une autre plusieurs valeurs afin d'en extraire une réponse simple et fermée.

Les contextes logiques
Un contexte logique est, par exemple, la condition qu'il est nécessaire de remplir dans une déclaration “if ( … ) { … }” afin que le code du bloc puisse être pris en compte. Ces conditions vont forcer le résultat à devenir une valeur booléenne. Donc, si notre résultat est d'un autre type, nous rentrerons dans ce que nous avons vu en première partie et notre langage ça interpréter le résultat comme étant “vrai” ou “faux” selon la règle déjà mentionnée.

arrow-up-circle