aboutsummaryrefslogtreecommitdiff
path: root/files/ru/glossary/falsy/index.md
blob: e315abb12e4dad97ea5a8dbe23d8ac15d9d7c19f (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
46
47
48
49
50
51
52
53
54
55
56
57
58
---
title: Ложноподобное значение
slug: Glossary/Falsy
tags:
  - CodingScripting
  - Glossary
  - JavaScript
---
**Ложноподобное** (**falsy**) значение — значение, которое становится `false` в {{Glossary("Boolean", "булевом")}} контексте.

{{Glossary("JavaScript")}} использует {{Glossary("Type_Conversion", "преобразование типов")}}, чтобы привести значение к булевому типу, там, где это требуется (например, в {{Glossary("Conditional", "условных конструкциях")}} и {{Glossary("Loop", "циклах")}}.

В следующей таблице приведен полный список ложноподобных значений JavaScript:

| Значение                    | Описание                                                                                                                                                                                                                        |
|-----------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `false`                     | Ключевое слово [`false`](/ru/docs/Web/JavaScript/Reference/Lexical_grammar#future_reserved_keywords_in_older_standards).                                                                                                        |
| `0`                         | Ноль {{jsxref("Number")}} (к нему также относятся `0.0`, `0x0` и т.д.).                                                                                                                                                         |
| `-0`                        | Отрицательный ноль типа {{jsxref("Number")}} (к нему также относятся `-0.0`, `-0x0` и т.д.).                                                                                                                                    |
| `0n`                        | Ноль типа {{jsxref("BigInt")}} (также `0x0n`). Обратите внимание, что не может быть негативного нуля типа {{jsxref("BigInt")}} — отрицательный `0n` равняется `0n`.                                                                                         |
| `""`, `''`, ` `` `          | Значение, содержащее пустую [строку](/ru/docs/Web/JavaScript/Reference/Global_Objects/String) .                                                                                                                                                 |
| {{Glossary("null")}}        | [null](/ru/docs/Web/JavaScript/Reference/Global_Objects/null) — отсутствие какого-либо значения.                                                                                                                                       |
| {{Glossary("undefined")}}   | [undefined](/ru/docs/Web/JavaScript/Reference/Global_Objects/undefined) — примитивное значение.                                                                                                                                  |
| {{Glossary("NaN")}}         | [NaN](/ru/docs/Web/JavaScript/Reference/Global_Objects/NaN) — значение, не являющиеся числом.                                                                                                                                                     |
| {{domxref("document.all")}} | Объекты считаются ложноподобными тогда и только тогда, когда у них есть внутренний слот [\[\[IsHTMLDDA\]\]](https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot). Этот слот есть только в объекте {{domxref("document.all")}}, и его задать через JavaScript. |

## Примеры

Примеры _ложноподобных_ значений в JavaScript (которые в булевых контекстах принудительно приводятся к false и таким образом _минуют_ блок `if`):

```js
if (false)
if (null)
if (undefined)
if (0)
if (-0)
if (0n)
if (NaN)
if ("")
```

### Оператор логического И, &&

Если первый операнд ложноподобен, то он будет возвращён в качестве результата:

```js
false && "dog"
// ↪ false

0 && "dog"
// ↪ 0
```

## Смотрите также

- {{Glossary("Truthy")}}
- {{Glossary("Type_coercion")}}
- {{Glossary("Boolean")}}