Что делает оператор ?? (nullish coalescing)?
Почему проверка значения в кэше через falsy может приводить к багам?
Чем отличается проверка на falsy-значение от строгого сравнения?
Специализация
Python Backend Developer
Java Backend Developer
Node.js Backend Developer
Golang Backend Developer
React Frontend Developer
Выберите навыки
React
JavaScript
Git
Redux
Webpack
Сложность
1-3
4-6
7-8
9-10
Рейтинг вопросов
1
2
3
4
5
Подпишись на React Developer в телеграм
Рейтинг:
5
Сложность:
3
Оператор ?? возвращает правый операнд, только если левый равен null или undefined. Во всех остальных случаях возвращается левое значение. В отличие от ||, он не считает 0, false или пустую строку ошибочными значениями. Это делает ?? безопасным для задания значений по умолчанию.
Рейтинг:
4
Сложность:
6
Проверка через falsy ломается, когда закэшированное значение является допустимым, но логически ложным. Значения 0, false, '' и null интерпретируются как отсутствие данных. В результате кэш игнорируется и данные пересчитываются заново. Это приводит к лишним вычислениям и логическим ошибкам. Проблема часто остаётся незаметной.
Рейтинг:
5
Сложность:
6
Falsy-проверка учитывает несколько значений как ложные. Строгое сравнение проверяет конкретное значение и тип. Falsy-проверка проще, но менее точная. Строгое сравнение безопаснее в бизнес-логике. Выбор зависит от задачи.