blob: 2d48f79b44113fdf0a4ed33d513fda24f0048830 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
|
---
title: Truthy
slug: Glossary/Truthy
translation_of: Glossary/Truthy
original_slug: Glossaire/Truthy
---
En [JavaScript](/fr/docs/Glossary/JavaScript), on dit en anglais qu'une valeur est **<i lang="en">truthy</i>** lorsqu'elle est considérée comme vraie (`true`) quand elle est évaluée dans un contexte [booléen](/fr/docs/Glossary/Boolean). Toutes les valeurs sont <i lang="en">truthy</i> sauf si elles sont définies comme [<i lang="en">falsy</i>](/fr/docs/Glossary/Falsy) (c'est-à-dire, sauf pour `false`, `0`, `-0`, `0n`, `""`, `null`, `undefined` et `NaN`).
[JavaScript](/fr/docs/Glossary/JavaScript) utilise la [contrainte de type](/fr/docs/Glossary/Type_coercion) dans un contexte booléen.
Exemples de valeurs <i lang="en">truthy</i> en JavaScript (qui seront converties en `true` dans un contexte booléen, ce qui exécutera le bloc `if`) :
```js
if (true)
if ({})
if ([])
if (42)
if ("0")
if ("false")
if (new Date())
if (-42)
if (12n)
if (3.14)
if (-3.14)
if (Infinity)
if (-Infinity)
```
### L'opérateur ET logique, &&
Si la première valeur est <i lang="en">truthy</i>, [l'opérateur ET logique](/fr/docs/Web/JavaScript/Reference/Operators/Logical_AND) renvoie le deuxième opérande :
```js
true && "chien"
// renvoie "chien"
[] && "chien"
// renvoie "chien"
```
## Voir aussi
- [`Falsy`](/fr/docs/Glossary/Falsy)
- [Contrainte de type](/fr/docs/Glossary/Type_coercion)
- [Booléen](/fr/docs/Glossary/Boolean)
|