Демо-вопросы WhyCode
Ниже — короткие примеры из формата с вариантами ответов. Полный каталог (500+ вопросов, фильтры, пояснения) — после регистрации.
Python
1. Что выведет выражение: `print([] or {})` (Python 3)?
- A) []
- B) {} ✓
- C) None
- D) TypeError
В Python пустой список `[]` и пустой словарь «falsy». Выражение `A or B` при ложном `A` возвращает `B`, поэтому `[] or {}` приводит к словарю; `print` выведет строковое представление `dict`.
JavaScript
2. Чем `let` отличается от `var` в основном (в блоке `if`)?
- A) `let` всплывает на весь scope файла, как `var`
- B) `let` имеет блочную область видимости ✓
- C) В ES6 разницы нет
- D) `let` нельзя переопределить
`var` функционально- или глобально-скоуп, `let`/`const` — блочно. Это классическое ожидание на интервью по JS.
Go
3. Чем по умолчанию инициализируется локальная переменная `var x int`?
- A) 1
- B) nil
- C) 0 (zero value) ✓
- D) undefined
Zero value для `int` — 0, для ссылок — `nil` и т.д. Часто спрашивают на go-собеседованиях.
Python
4. Что делает `GIL` в CPython в первую очередь?
- A) Ограничивает одновременное выполнение байткода в одном процессе в типичной реализации ✓
- B) Ускоряет любые CPU-bound задачи
- C) Запрещает использование `threading`
- D) Это диспетчер asyncio
GIL (Global Interpreter Lock) — про модель исполнения CPython, не про запрет тредов, а про параллелизм на CPU-нагруженных участках кода.
JavaScript
5. Чем `===` отличается от `==` в JavaScript?
- A) `===` строгая проверка без приведения типов ✓
- B) `==` строгая, `===` с приведением
- C) Они эквивалентны
- D) `===` только для объектов
`==` с приведением типов (с неочевидными краевыми случаями), `===` сравнивает и тип, и значение — основа вопросов на junior/middle фронт.
