--- title: Falsy slug: Словарь/Falsy tags: - Glossary - JavaScript - falsy translation_of: Glossary/Falsy ---
Ложное (falsy) значение - это значение, которое считается ложным, когда встречается в контексте {{Glossary("Boolean")}} .
{{Glossary("JavaScript")}} использует {{Glossary("Type_Conversion", "Type Conversion")}} для приведения любого значения к логическому в контекстах, которые требуют его, такие как {{Glossary("Conditional", "условные выражения")}} и {{Glossary("Loop", "циклы")}}.
В JavaScript есть только 7 ложных значений
Это означает, что когда JavaScript ожидает логическое значение и ему присваивается одно из значений ниже, он всегда будет оцениваться как «ложное»
false | Ключевое слово {{jsxref('Lexical_grammar','false','Зарезервированные_ключевые_слова_в_более_старых_версиях')}} |
0 | Число zero |
0n |
{{jsxref('Global_Objects/BigInt','BigInt')}}, при использовании в качестве логического значения, следует тому же правилу, что и число. 0n - это ложь. |
"", '', `` |
Это пустая строка(длина строки ноль). Строки в JavaScript могут быть определены с помощью двойных кавычек (") или одинарных кавычек ('), а также {{jsxref ('template_strings', 'Template literals')}} (`) |
{{Glossary("null")}} | {{jsxref('Global_Objects/null','null')}} - отсутствие какого-либо значения |
{{Glossary("undefined")}} | {{jsxref('Global_Objects/undefined','undefined')}} - примитивное значение |
{{Glossary("NaN")}} | {{jsxref('Global_Objects/NaN','NaN')}} - не число |
Примеры ложных значений в JavaScript (которые приводятся к ложному в булевых контекстах и, таким образом, обходят блок if):
if (false) if (null) if (undefined) if (0) if (0n) if (NaN) if ('') if ("") if (``) if (document.all)
Если первый объект ложный, он возвращает этот объект
let pet = false && "dog"; // ↪ false
В прошлом для обнаружения браузером использовался document.all
, а Спецификация HTML здесь определяет преднамеренное нарушение стандарта ECMAScript для сохранения совместимости с устаревшим кодом. (if (document.all) { // Internet Explorer code here(except IE11) }
or using document.all
without checking its presence first: document.all.foo
).
Иногда пишется falsy, хотя на английском языке обычно превращают слово в прилагательное с окончанием -y, любое окончание e отбрасывается(noise => noisy, ice => icy, shine => shiny)