React. Реакт. Тестовая задача 018. Какой смысл в конструкции: item && item.value
Какой смысл в конструкции: item && item.value
Разберёмся, что здесь происходит:
<script src="/js/react/react.development.js"></script>
<script src="/js/react/react-dom.development.js"></script>
<script src="/js/react/babel.min.js"></script>
...
<script type="text/babel">
const { useState, createElement } = React;
const { createRoot } = ReactDOM;
// const item = {}; // объект без свойства value
const item = {
value: 'какое‑то значение'
};
console.log('item:', item);
console.log('item.value:', item.value);
console.log('item && item.value:', item && item.value);
console.log('Итог:', (item && item.value) || 'Нет данных');
createRoot(document.getElementById('root')).render(
<>
{(item && item.value)
? <h2>{item.value}</h2>
: <h2>'Нет данных'</h2>
}
</>
);
Какой смысл в конструкции: item && item.value.
Конструкция item && item.value - это сокращённая проверка на существование объекта и доступ к его свойству с использованием логического оператора "И" (&&).
Разберём пошагово, как она работает и зачем нужна.
Как это работает.
Первый операнд: item
JavaScript проверяет, является ли item "истинным" (truthy) или "ложным" (falsy).
Если item равен null, undefined, false, 0, '' (пустая строка) или NaN — выражение сразу возвращает это значение (т. е. item).
Если item "истинный" (например, объект, непустая строка, число ≠ 0) — переходит ко второму операнду.
Второй операнд: item.value
Если item прошёл проверку (т. е. существует), JavaScript пытается получить свойство value у item.
Результат: значение item.value (может быть любым: строка, число, undefined и т. д.).
Итог:
Если item не существует (null/undefined) → возвращается item (т. е. null/undefined).
Если item существует → возвращается item.value.
Нажмите F12, чтобы посмотреть отображение информации в консоли.