Специализация
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 в телеграм
Объяснить разницу между var, let и const в JavaScript?
var имеет функциональную область видимости, поддерживает поднятие и может быть переназначен. let имеет блочную область видимости и также может быть переназначен. const тоже имеет блочную область видимости, но его значение нельзя переназначить.
Расскажите об области видимости переменных?
Область видимости переменной определяет, где в коде эта переменная доступна. В JavaScript существуют глобальная область видимости, блочная область видимости и область видимости функции. Переменные, объявленные с var, имеют функциональную область видимости, а let и const — блочную область видимости, что означает, что они доступны только внутри блока, в котором были объявлены.
Что такое temporal dead zone (временная мёртвая зона) в JavaScript и как она влияет на переменные?
Temporal dead zone (TDZ) — это период времени от начала области видимости переменной, объявленной с помощью let или const, до момента её инициализации. В TDZ переменные недоступны и попытка к ним обратиться вызовет ошибку. Это помогает избежать непредсказуемого поведения при работе с переменными.
В чем разница между init и constructor в Kotlin?
constructor создаёт экземпляр класса и принимает параметры, а блок init выполняет инициализацию, общую для всех конструкторов. Блок init всегда выполняется после вызова конструктора, что позволяет настроить объект или проверить параметры.
В чем разница между const и readonly в C#?
const задает константу, значение которой невозможно изменить после компиляции, тогда как readonly позволяет задать значение переменной только в момент инициализации или в конструкторе.
Почему внедрение зависимостей через конструктор (@RequiredArgsConstructor) предпочтительнее, чем @Autowired в поле? Какие проблемы решает?
Для чего нужны const val и val? Почему const val нельзя использовать с var?
Что лучше: SnapKit или NSLayoutConstraint, и почему?
В какой момент вызываются @PostConstruct и @PreDestroy?
Почему constructor injection считается предпочтительным способом внедрения зависимостей в Spring?
Рейтинг:
2
Сложность:
6
Внедрение через конструктор делает зависимости явными, класс — иммутабельным и упрощает тестирование. @Autowired в поле скрывает зависимости, усложняет мокирование и может привести к NullPointerException, если Spring не инициализирует поле.
Рейтинг:
1
Сложность:
5
const val — константа времени компиляции (только примитивы/строки).
val — неизменяемое значение, вычисляемое в runtime.
Рейтинг:
4
Сложность:
6
Оба варианта используют Auto Layout, но отличаются уровнем абстракции. SnapKit удобнее и читабельнее, NSLayoutConstraint — нативный и не требует сторонних зависимостей. В большинстве проектов SnapKit ускоряет разработку. NSLayoutConstraint может быть предпочтительнее в маленьких проектах или при строгих требованиях к зависимостям. Выбор зависит от контекста.
Рейтинг:
4
Сложность:
6
@PostConstruct вызывается после создания бина и внедрения всех зависимостей. @PreDestroy вызывается перед уничтожением бина и завершением контекста. Эти методы позволяют выполнить инициализацию и освобождение ресурсов. Они являются частью жизненного цикла бина.
Рейтинг:
5
Сложность:
6
Constructor injection гарантирует, что объект создаётся сразу в корректном состоянии. Все зависимости обязательны и не могут быть забыты. Такой подход упрощает тестирование и делает объект неизменяемым. Он также позволяет раньше выявлять ошибки конфигурации. Поэтому Spring рекомендует именно этот способ.
Рейтинг:
2
Сложность:
2
Рейтинг:
3
Сложность:
4
Рейтинг:
2
Сложность:
7
Рейтинг:
3
Сложность:
7
Рейтинг:
2
Сложность:
3