Запитання для самоперевірки з усіх лекцій
lecture_01_a.md (Основи UX-дизайну: Принципи та патерни поведінки користувачів)
- Що таке UX-дизайн і чим він концептуально відрізняється від UI-дизайну?
- Назвіть 3 ключові характеристики “зручного” (usable) веб-інтерфейсу. Чому швидкість завантаження також є частиною UX?
- Поясніть концепцію “Ментальної моделі” користувача. Чому використання стандартної іконки “лупи” для пошуку краще, ніж вигадування власного креативного символу?
- Що таке “патерн F-подібного читання” (F-pattern) і як він впливає на розташування ключового контенту на сторінці?
- Опишіть правило “3 кліків”. Чи є воно догмою в сучасному вебі? Що важливіше за мінімальну кількість кліків по навігації?
lecture_01_b.md (Дослідження та тестування користувацького досвіду)
- Хто такі “User Personas” (Персонажі) і яку практичну користь вони несуть при розробці структури сайту?
- В чому різниця між кількісними (Google Analytics) та якісними (Інтерв’ю) дослідженнями аудиторії?
- Що таке “Customer Journey Map” (CJM)? З яких етапів зазвичай складається шлях клієнта в e-commerce додатку?
- Поясніть алгоритм проведення А/В тестування. Скільки елементів можна змінювати на сторінці одночасно для отримання достовірних результатів B-версії?
- Що таке “Коридорне тестування” (Hallway testing) і які критичні та неочевидні помилки інтерфейсу воно дозволяє виявити на ранніх етапах?
lecture_01_c.md (Основи UI-дизайну та візуального оформлення)
- Що таке “Теорія кольору” в UI? Як пов’язані між собою поняття “Primary color”, “Secondary color” та “Accent color” у дизайн-системі?
- Яка різниця між шрифтами сімейства Serif (із зарубками) та Sans-serif (без зарубок)? Які з них рекомендується використовувати для великих масивів тексту на екранах моніторів?
- Що таке “Ієрархія типографіки” і які CSS параметри (розмір, товщина, колір) допомагають людині швидко відсканувати сторінку, ще не вчитуючись у неї?
- Поясніть вплив контрасту кольорів на доступність інтерфейсу (a11y). Який мінімальний коефіцієнт контрастності для тексту за стандартом WCAG 2.1 AA?
- Що таке мікроінтеракції (micro-interactions) і як візуальний фідбек (наприклад, зміна кольору кнопки при наведенні або спіннер завантаження) покращує досвід користувача?
lecture_01_d.md (Побудова інтерфейсів: Сітки та інтерактивні елементи)
- Що таке “Модульна сітка” (Grid system) в дизайні інтерфейсів? Чому класична сітка Bootstrap/Figma найчастіше базується саме на 12 колонках?
- Поясніть принцип “Теорії близькості” (Law of Proximity) з Гестальт-психології. Як відступи (margins/paddings) впливають на логічне групування елементів (наприклад, заголовка, тексту та кнопки карток)?
- В чому різниця між “Whitespace” (макро відступи між блоками сайту) і мікро-відступами? Чому “пустота” (повітря) на сайті — це теж важливий елемент дизайну, якого не варто боятися?
- Опишіть три стани (states) обов’язкової промальовки інтерактивної форми вводу (
input): Default, Focused та Error. Яке візуальне кодування найкраще підходить для Error state?
- Що таке “Закон Фітца” (Fitts’s Law) при розрахунку розміру клікабельних елементів (кнопок) і їх розташування на екрані, особливо на мобільних телефонах?
lecture_01.md
- В чому різниця між поняттями Інтернет (Internet) та Всесвітня Павутина (WWW)?
- Чому протокол TCP/IP називають “надійним”, а UDP — “швидким”? Де саме використовуються ці два підходи?
- Опишіть процес розпізнавання доменного імені за допомогою DNS (від кешу браузера до Root-серверів).
- Яка проблема протоколу HTTP/1.1 була вирішена за рахунок впровадження мультиплексування в HTTP/2? Які переваги дає HTTP/3 порівняно з TCP-протоколами?
- Поясніть відмінність між HTTP-методами
POST та PUT в контексті дій.
- Що означають групи статус-кодів 2xx, 3xx, 4xx і 5xx? Яка ключова різниця між 401 та 403?
- Чим ідея “Semantic Web (Web 3.0)” (базується на розумінні змісту через мікродані та AI) відрізняється від парадигми “децентралізованого Web3” (сучасний контекст блокчейну)?
lecture_02.md
- Що таке теги в HTML? В чому різниця між тегом та елементом?
- Яким є головне призначення мета-тегу
<meta name="viewport"...> (у розділі <head>) і що трапиться з мобільним відображенням додання цього тегу?
- В чому принципова відмінність “Блокових” (block) і “Рядкових” (inline) елементів? Наведіть приклади.
- Поясніть на прикладах, у яких випадках використовують семантичні теги
<article> замість <section>, і де саме логічно розміщувати <aside>?
- Для чого призначений атрибут
alt у тегу <img>? Які дві проблеми він допомагає вирішити? Назвіть вийняток, у якому alt можна лишити зовсім пустим (alt="").
- Що таке Web Accessibility (a11y) і як працюють інструменти “skrіnreder’и” (екранні читалки)?
- Яка роль атрибута
tabindex і чому використання tabindex="1" чи інших позитивних чисел вважається поганою практикою (анти-патерном) в UI/UX дизайні?
- Поясніть роботу і застосування атрибутів
aria-hidden та aria-label для кастомних JS віджетів (наприклад, звичайних кнопок-іконок).
lecture_03.md
- Які чотири складові містить блокова модель CSS?
- Що змінює правило
box-sizing: border-box у розрахунку розмірів елемента?
- В чому різниця між властивостями
display: none та visibility: hidden?
- Які стилі застосовуватимуться до елемента, якщо він є
display: inline і йому задати width: 100px та margin-top: 50px?
- Що таке “схлопування зовнішніх відступів” (margin collapsing)?
- Відносно чого позиціюється елемент із
position: absolute? Що станеться, якщо у нього немає жодного спозиційованого батьківського елемента?
- Чим
position: sticky відрізняється від position: fixed?
- Чому елемент із
z-index: 999 може знаходитись ПІД елементом із z-index: 2? У яких випадках це відбувається?
lecture_04.md
- У чому принципова відмінність макетування на базі Flexbox від підходів із використанням
float?
- Яку властивість необхідно додати контейнеру (батьку), щоб розпочати роботу з Flexbox?
- Де знаходиться Головна (Main) і Поперечна (Cross) осі, якщо задано
flex-direction: column?
- Яка властивість контейнера відповідає за обгортання елементів на новий рядок, якщо вони не вміщуються по ширині?
- Як центрирувати елемент всередині Flex-контейнера одночасно по горизонталі та вертикалі?
- Чим
justify-content відрізняється від align-items?
- Що означають три значення у властивості-скороченні
flex: 1 0 auto?
- Як впливає властивість
order на позиціонування елементів? З якого значення починається нумерація?
lecture_05.md
- У яких ситуаціях варто використовувати Flexbox, а у яких — CSS Grid?
- Що таке лінія сітки (Grid Line) і з якої цифри починається їх нумерація?
- Як працює одиниця вимірювання
fr (Fraction)? Наведіть приклад.
- Поясніть принципову різницю між
auto-fill та auto-fit.
- Як властивість
span впливає на розташування елемента по сітці?
- Що таке іменовані області (
grid-template-areas) і як з ними працювати? Наведіть приклад синтаксу для 2-колонкового макета з header і footer.
- Який мета-тег є обов’язковим для коректної роботи адаптивного дизайну на мобільних пристроях?
- Поясніть концепцію Mobile First. Які медіа-запити (
min-width чи max-width) використовуються у цьому підході?
lecture_06.md
- Для чого призначений атрибут
action у тегу <form>?
- У чому семантична та практична різниця між HTTP-методами
GET та POST при відправці форми?
- Чим відрізняється поведінка групи елементів
type="radio" від групи елементів type="checkbox"? Завдяки якому атрибуту групуються радіо-кнопки?
- Опишіть призначення атрибута
name на елементі вводу. Що станеться, якщо його пропустити?
- Наведіть щонайменше 2 переваги використання нових типів вводу HTML5 (наприклад,
type="email", type="date").
- Чому важливо використовувати тег
<label>? Як саме його “пов’язують” із текстовим полем?
- У чому різниця між атрибутами стану
disabled та readonly?
- Що таке клієнтська валідація? Чому, якщо вона є, все одно необхідна валідація даних на бекенді (сервері)?
- Який атрибут у HTML5 застосовується для перевірки значення поля за допомогою регулярного виразу (regex)?
lecture_07.md
- Чим растрова графіка онцептуально відрізняється від векторної (SVG)? Де варто використовувати кожну з них?
- Які переваги пропонують формати WebP або AVIF порівняно із JPEG і PNG?
- Що таке “Ліниве завантаження” (Lazy Loading) і як його реалізувати стандартними засобами HTML? Чому його не можна застосовувати для всіх зображень на сайті?
- Навіщо потрібно вказувати атрибути
width та height для тегу <img>? Як це впливає на метрику CLS (стабільність макета)?
- Що таке атрибут
srcset і яка його головна роль (для мобільних телефонів vs великих дисплеїв)?
- Які проблеми вирішує елемент
<picture> з дочірніми <source> (назвіть мінімум дві причини використання)?
- Що означає термін “ресурс, блокуючий рендерінг” і чому CSS вважається саме таким ресурсом? Як мініфікація допомагає вирішити цю проблему?
lecture_08.md
- Поясніть своїми словами взаємозв’язок між Доменом, DNS та Хостингом.
- Чому розгортання сайту без SSL-сертифіката (по HTTPS) є неприпустимим у сучасному вебі?
- Що таке механізм Continuous Deployment (CD) в контексті платформ на кшталт Vercel чи Netlify?
- У чому різниця між етапами Crawling (Сканування) та Indexing (Індексування) у роботі пошуковика Google?
- Які типи HTML-елементів (тегів та атрибутів) є найбільш критичними для внутрішнього (технічного) SEO? Чому на сторінці має бути лише один тег
<h1>?
- Ви відправили посилання на свій сайт другу в Telegram, але замість гарної картинки він отримав просто голий текст і адресу. Чого не вистачає у вашому коді?
- Що таке Lighthouse і які чотири основні метрики він аналізує?
lecture_09.md
- В чому полягає критична проблема використання
var для створення змінних, і коли замість const слід використовувати let?
- Назвіть 5 примітивних типів даних у JS. У чому їхня глобальна відмінність від Об’єктів?
- Що буде результатом виразу
typeof null згідно з документацією (це відомий баг мови)? Що таке undefined?
- Навіщо у HTML і JS придумали два оператори порівняння: подвійне (
==) і потрійне (===) дорівнює?
- З якого числа прийнято починати нумерацію елементів будь-якого масиву? Як отримати останній елемент масиву, якщо його довжина заздалегідь невідома?
- Що таке об’єкт в JS? У якому форматі там зберігаються дані?
- Створіть змінну
myString використовуючи шаблонні рядки, яка міститиме текст “Разом: X грн”, де X береться із заданої числової змінної totalPrice.
- Опишіть своїми словами, що робить оператор
... (Spread) і як його застосувати для злиття двох масивів у третій?
lecture_10.md
- Чим відрізняється Function Declaration від Function Expression?
- В чому специфіка стрілочних функцій (Arrow Functions) окрім їхнього короткого синтаксису? Чого вони “НЕ мають”?
- В чому різниця між Rest оператором та Spread оператором, коли обидва виглядають як
...?
- Опишіть своїми словами, що таке Замикання (Closure). Для якої найпопулярнішої проблеми його використовують?
- Що виведе
console.log(this) в глобальній області видимості в браузері? А всередині методу об’єкта?
- Якщо у вас є метод об’єкта
user.showName(), і ви передасте його як callback (наприклад у таймер: setTimeout(user.showName, 1000)), швидше за все контекст загубиться. Як вижити в цій ситуації за допомогою методів bind або стрілочної функції?
- У чому принципова різниця між методами функції
call() та bind()?
lecture_11.md
- З якими аргументами викликається Callback-функція в методах масиву? Який з них є обов’язковим для використання?
- В чому принципова різниця між
forEach та map? У яких випадках слід обрати кожен із них?
- Що буде, якщо у Callback-функції для методу
map ви забудете написати команду return? Яким буде результат (масив з чим)?
- Метод
filter отримав Callback, який завжди повертає число 1. Що буде у відфільтрованому масиві?
- Для чого використовується значення
accumulator у методі reduce, і де в синтаксисі вказується початкове значення цього акумулятора?
- Якщо вам потрібно знайти користувача “Ігор” і пересвідчитися, що він є в базі, чому метод
find буде набагато ефективнішим вибором (з точки зору швидкодії сервера), ніж метод filter?
- У вас є масив чисел
[5, 1, 15]. Яким буде результат виклику arr.sort() без переданої Callback-функції і чому?
- Що таке Chaining (ланцюжок методів) і завдяки якій властивості методів
filter або map він став можливим?
lecture_12.md
- Що таке DOM-дерево і чим воно принципово відрізняється від статичного HTML-файлу?
- Який метод потрібно використати, якщо ви хочете знайти всі кнопки з класом
.btn на сторінці? Який тип даних він поверне?
- В чому небезпека використання властивості
innerHTML для вставки даних, які ввів користувач? Яка властивість безпечніша?
- Чому для зміни зовнішнього вигляду елемента за допомогою JS рекомендується використовувати методи конструкції
classList, а не пряму зміну властивості style?
- Напишіть код, який створить новий тег
<li> з текстом “Яблуко” і додасть його в кінець списку <ul> з класом .fruits.
- Опишіть своїми словами, що таке “спливання подій” (Bubbling). Чому об’єкт події (
event) такий важливий у патерні “Делегування”?
- Уявіть, що JS виконує складний математичний цикл
for на мільярд ітерацій (синхронний код). Що станеться зі сторінкою? Чому?
- Що таке Call Stack (Стек викликів) та Task Queue (Черга завдань), і яку роль між ними відіграє Event Loop?
lecture_13.md
- Чим відрізняється HTTP Метод
GET від методу POST у концепції REST API? Який з них викликається функцією fetch() за замовчуванням?
- Вкажіть три правила (відмінності), які відрізняють формат тексту JSON від класичного об’єкта JavaScript у пам’яті?
- Що таке Promise в JavaScript, і в яких трьох станах він може перебувати?
- Яка роль ключового слова
await, чому без нього функція loadData() видала б помилку, або просто повернула Promise Pending? Де саме його потрібно ставити?
- Напишіть рядок коду (лише рядок), який перетворить отриманий по HTTP текстовий JSON із масивом у реальний масив даних JS.
- Навіщо у конфігурації (в
options) при здійсненні POST-запиту ми зобов’язані передати параметр headers Content-Type: application/json?
- Чому функція
fetch може працювати без генерації системної помилки ігноруючи навіть статус “404 Not Found”? Як з цим боротися?
- Яке призначення блоку
try...catch при написанні функції з мережевими запитами? Що конкретно виконує секція catch(error)?
lecture_14.md
- Чому розробка великих веб-додатків тільки з використанням Vanilla JS (та інструментів на зразок
document.querySelector) є поганою практикою сьогодні?
- Поясніть своїми словами ключову різницю між фреймворком (наприклад, Angular) та бібліотекою (наприклад, React).
- Що таке механіка SPA (Single Page Application)? Як вона впливає на користувацький досвід та споживання трафіку порівняно зі старими багатосторінковими сайтами?
- Які три головні переваги дає розбиття великого сайту на маленькі незалежні компоненти?
- Наведіть приклад імперативного та декларативного підходу до вирішення побутової проблеми за межами програмування (на кшталт поїздки на таксі). Як це стосується React?
- Що таке Virtual DOM? Чому React не вносить зміни безпосередньо у справжній DOM браузера одразу після кліку користувача?
- Поясніть крок за кроком, що робить алгоритм Реконсиляції (Reconciliation), коли у додатку змінюються дані.
- Чому індустрія масово відмовилася від
Create React App на користь інструментарію Vite?
lecture_15.md
- Чому всі React-компоненти обов’язково повинні називатися з великої літери?
- Для чого існують React Фрагменти (
<> </>)?
- Дайте визначення терміну
Props. У якому напрямку між компонентами можлива їхня передача? Чи має право син-компонент поміняти те, що йому передали?
- Напишіть приклад коду, як за допомогою деструктуризації витягнути з пропсів параметри
title та color (де color за замовчуванням буде “black”).
- Чому React змушує нас використовувати атрибут
className замість класичного HTML-атрибута class?
- За допомогою якого методу масиву здійснюється масове створення (рендерінг) компонентів у вигляді списку?
- Чому використання випадкових чисел (на кшталт
Math.random()) або індексів масиву у якості key в списках — це погана практика і може викликати страшні баги? Яке джерело для значення атрибута key є еталонним?
- Що таке умовний рендеринг і які два оператори JavaScript використовуються для відображення або приховування елементів у JSX на його основі?
lecture_16.md
- Чим
State фундаментально відрізняється від Props з точки зору права на зміну даних?
- Що станеться, якщо ви спробуєте оновити значення лічильника напряму через математичний оператор (наприклад,
count = count + 1), не використовуючи функцію setCount()?
- Чому виклики хуків (усіх функцій зі словом
use) заборонено ставити всередину умовних конструкцій if () {...}?
- Що означає термін “асинхронне оновлення стану”? Яке значення побачить console.log(X) одразу після рядка з виконання
setX(...)?
- Чому React “категорично забороняє” використовувати вбудований метод
push() для масивів, які зберігаються у стейті? Як правильно додати елемент?
- Що таке Керований Компонент (Controlled Component) на прикладі поля вводу
<input />? Які два атрибути (пропси) обов’язкові для його правильної роботи?
- Поясніть логіку “Підняття стану”. Якщо брат і сестра компоненти потребують одних даних, де варто оголосити змінну через
useState?
lecture_17.md
- Згадайте визначення “Чистої функції”. Чому запит на сервер (
fetch) або запуск таймера setInterval вважаються Побічними Ефектами, що порушують чистоту?
- Які три основні фази має життєвий цикл кожного окремого компонента в інтерфейсі?
- Що буде, якщо ми взагалі не передамо другий аргумент (масив) до функції
useEffect? Коли саме він запуститься?
- Для чого в 90% випадків ідеально підходить хук
useEffect із порожнім масивом залежностей []? Як часто він виконується?
- Чому React видаватиме попередження в консолі, якщо ви спробуєте написати
useEffect( async () => {...}, [])? Як правильно робити асинхронні виклики всередині цього хука?
- Наведіть сценарій, коли функція “Очищення” (та, яку ефект повертає через
return () => {}) є абсолютно необхідною для запобігання витоку пам’яті? Коли саме React її викличе?
- Поясніть покроково, як відсутність порожнього масиву
[] при виклику fetch (який закінчується командою setData) призводить до безкінечного циклу зависання браузера?
lecture_18.md
- Чому React Router є сторонньою бібліотекою, а не вбудований у React? Що таке клієнтська маршрутизація?
- Поясніть шкоду, яку спричинить тег
<a> замість <Link> для навігації в межах SPA-додатку.
- Що означає двокрапка
: у рядку /product/:id під час налаштування маршруту? Який вбудований хук React Router допоможе компоненту витягти значення на місці цього двокрапки з адреси браузера?
- В якій ситуації і для якої поведінки вам би довелося застосувати хук
useNavigate() замість <Link>?
- Для чого на сторінці-шаблоні Батьківського Маршруту (Parent Layout) потрібно вставляти компонент
<Outlet />? Під час розробки яких поширених UI-шаблонів це корисно?
- Як налаштувати в React Router обробку невідомих маршрутів, щоб створити сторінку “404 Not Found” (Який “символ” відповідає за перехоплення всіх неспівпадінь)?
lecture_19.md
- Змоделюйте і опишіть ситуацію, яка ілюструє жах архітектурного паттерну під назвою
Prop Drilling.
- Які дані має сенс залишати локальними (через звичайний хук
useState), а які доцільно винести на Глобальний рівень?
- Які два ключові кроки (компоненти/хуки) потрібно реалізувати розробнику, щоб створити свій перший Context API та доставити в нього інформацію?
- Назвіть функції компонента
<ThemeContext.Provider>, навіщо йому атрибут value?
- У чому полягає критична слабкість Context API під час керування великим об’єктом стану, який містить 50 різних полів і щомиті оновлюється?
- Назвіть 2 головні відмінності і переваги бібліотеки
Zustand над класичним рішенням з Context API, коли мова заходить про швидке розгортання проєкту.
lecture_20.md
- У чому полягає найбільша небезпека (і біль) використання одного глобального файлу
style.css у великих веб-додатках (до епохи ізоляції)? Що таке “Специфічність CSS”?
- Поясніть принцип “CSS-in-JS” (на прикладі Styled Components). Що фізично імпортується і що ми пишемо у зворотному апострофі?
- В чому головна супер-сила Styled components порівняно навіть з CSS Modules? Що компонент CSS-in JS може “спіймати” від своїх батьків для перетворення кольору/ширини динамічно?
- Розшифруйте ідеологію “Utility-First” на якій побудовий Tailwind CSS? Як би ви описали клас
.card і .btn у термінах мікро-класів (просторо/колір)?
- Що означають класи Tailwind
m-4, p-2, bg-blue-600, hover:text-red-300, flex?
- З яким головним “Мінусом” Tailwind стикаються більшість розробників, коли переходять на нього (чисто візуальна естетика вашого коду)?
- Яким чином Tailwind гарантує, що незважаючи на тисячі доступних класів-утиліт, фінальний CSS-файл для браузера буде “важити” лічені кілобайти?
lecture_21.md
- Чому Node.js став революцією і звідки він взяв свій головний “двигун” (Engine) для обробки коду?
- Поясніть принцип “неблокуючого вводу/виводу” (Non-blocking I/O). Що робить сервер на Node.js, поки чекає інформацію від повільної бази даних?
- Що таке
npm і яку роль цей концепт відіграє в екосистемі Node?
- Для чого Frontend-розробники підключають фреймворк
Express замість того, щоб масувати обробку запитів голим Node.js модулем “http”?
- Що таке Middleware (Мідлвари) у філософії Express? Навіщо вони потрібні та яку функцію обов’язково треба викликати всередині мідлвару, щоб код працював далі (згадайте функцію під кодом
next)?
- Ви отримали клієнтський
GET запит вигляду /users/99. Як називається об’єкт (його поле), всередині якого лежить число 99, і як з ним працює Express-навігація (req.xxx...)?
- Ваш сервер має прочитати повідомлення з форми (POST запит) від користувача і записати у таблицю бази. Який вбудований мідлвар треба додати у верхній частині файлу конфігурації
app.js, щоб об’єкт req.body не був undefined?
lecture_22.md
- Чим фундаментально відрізняється таблиця SQL (наприклад PostgreSQL) від колекції NoSQL (наприклад Firestore)? Яка з цих архітектур менш гнучка до зміни кількості характеристик сутності на льоту?
- Що таке BaaS? Як цей підхід рятує життя Frontend-інженерам чи мобільним розробникам-одинакам під час створення власних проектів та стартапів?
- В чому головна архітектурна різниця “під капотом” між конкурентами Firebase та Supabase? Яка база є реляційною?
- Які змінні конфігурації (які зазвичай отримують в адмін-панелі) обов’язково треба передати функції
createClient() для коннекту клієнта з хмарою, і де прийнято їх приховувати в проекті?
- Напишіть за допомогою чейнінгу методів
supabase, як зібрати і відсортувати список з 10 товарів.
- Як працює Аутентифікація в Supabase: які дві базові функції викликаються для реєстрації юзера та для його логіну? Куди платформа непомітно зберігає “перепустку” (токен) в межах браузера?
- Сценарій: Хакери можуть прочитати ваші ключі Supabase у відкомпільованому
bundle.js сайті і спробувати викликати з консолі метод supabase.delete(), щоб обнулити вам базу. Який механізм інженерного захисту створений для блокування цього?
lecture_23.md
- Згадайте Піраміду тестування. Який відсоток тестів мають займати Unit та E2E тести, і чому E2E не роблять на кожну маленьку функцію?
- Як називаються три ключові кроки будь-якого правильного тесту (Підготовка, Дія, Перевірка) англійською мовою (правило трьох ‘A’)?
- У коді Jest ми бачимо
expect(someVar).toBe(5). Який аналог цієї функції буде використано для порівняння двох складних об’єктів з ключами (toEqual)?
- В чому полягає філософія React Testing Library (RTL)? Чому він шукає елементи на екрані за їхнім текстом
getByText, а не за ім’ям CSS класу (наприклад .login-button)?
- Назвіть 3 базові команди Cypress для взаємодії з веб-сторінкою: відкрити URL, знайти елемент і натиснути його, набрати текст у
input.
- Розшифруйте абревіатуру TDD та поясніть 3 фази циклу “Червоний-Зелений-Рефакторинг”.
lecture_24.md
- Згадайте, що таке JavaScript помилка “Runtime Exception”. В який момент часу і де саме вона “вибухає” для звичайного Юзера, коли ми просто використовуємо ванільний JS? А коли TS зупиняє цю помилку?
- Браузер (Chrome чи Safari) має вбудований безкоштовний компілятор TypeScript, щоб читати цей новий синтаксис? Що фізично потрапить у кінцевий файл
bundle.js, який віддає сервер на хостингу?
- Що у філософії TypeScript означає знак питання
? відразу після імені ключа об’єкта (в межах “Interface”)? Яке значення JS може ховатися на цьому місці окрім бажаного стрінгу (рядка)?
- Поясніть концепцію та призначення оператора вертикальної лінії
| під назвою “Union type”. Коли це може знадобитися у роботі з функцією приймання ідентифікаторів товарів з бази даних?
- Для чого ставиться ключове слово
void після закриваючої круглої дужки функції function sayHello(...) : void?
- Якщо ваш компонент
UserCard приймає в себе пропси імені, та статусу (active чи не active), як за допомогою TypeScript захистити іншого розробника від того, щоб він випадково не передав цей status у форматі звичайного стрінгу “ОК”? Складіть цей “Контракт Пропсів” в голові.