JS CORE Flashcards
Які існують типи даних у JS?
Примітивні: string, number, symbol, boolean, null, undefined, bigint
Непримітивний: object
Як перевірити, чи об’єкт є масивом?
Array.isArray()
Як перевірити, чи число є скінченним?
isFinite(number)
Як перевірити, що змінна рівна NaN?
isNaN(variable)
Чим відрізняється поведінка isNaN() та Number.isNaN()?
Перше конвертує, друге ні
Порівняйте ключові слова var, let, const.
Порівняйте ключові слова var, let, const.
Що таке область видимості?
Область яка говорить про те де можна використати змінну
Що таке деструктуризація?
Процес розгортання масиву, або об’єкту з можливістю присвоєння до змінних
Для чого призначені методи setTimeout і setInterval?
Викликає ф-цію після затримки. setTimeout - викликає один раз, і setInterval - викликає інтервально
Порівняйте підходи роботи з асинхронним кодом: callbacks vs promises vs async/await.
Callback - функція, передана як аргумент іншій функції, для виконання пізніше.
Promise - об’єкт, який представляє результат асинхронної операції, яка може бути виконана або відхилена.
Async/await - синтаксис для роботи з promises, що робить асинхронний код схожим на синхронний.
Назвіть методи масивів, які пам’ятаєте, і скажіть, для чого вони потрібні.
push, pop, shift, unshift, slice, forEach
Які перебираючі методи масиву знаєте? У чому їхня відмінність?
map, filter, reduce, some, any
Map повертає новий масив значень
Filter порівнює значення і якщо тру повертає новий масив
Reduce повертає акамульоване значення
Some перевіряє чи є значення
Опишіть призначення і принципи роботи з колекціями Map і Set.
Map – це колекція ключ/значення, як і Object. Але основна відмінність полягає в тому, що Map дозволяє мати ключі будь-якого типу.
Set - це list унікальних значчень
Що означає глибока (deep) та поверхнева (shallow) копія об’єкта? Як зробити кожну з них?
Deep cloning - cтворює копію об’єкта та всіх вкладених об’єктів. stringify and then parse
Shallow cloning - створює копію об’єкта, але не копіює його вкладені об’єкти. (Object.assign({}, obj)
Який буде результат виконання коду?
let firstObj = { name: ‘Hello’ };
let secondObj = firstObj;
firstObj = { name: ‘Bye’ };
console.log(secondObj.name);
Hello
Що таке temporal dead zone?
Зона між початком block scope до ініціалізації змінної
Як працює boxing / unboxing у JavaScript?
Процес обгортання примітивного значення в об’єкт. Щоб unbox треба використовувати valueOf
У чому різниця між оператором in і методом hasOwnProperty?
in: Перевіряє, чи є властивість в об’єкті або його прототипі.
hasOwnProperty: Перевіряє, чи є властивість без урахування прототипу.
Опишіть, за допомогою чого в JS реалізуються такі ООП-парадигми, як інкапсуляція, поліморфізм, абстракція?
Наслідування: за допомогою прототипного наслідування. Кожний об’єкт має прототип, який може бути іншим об’єктом чи null
Інкапсуляція: за допомогою замикань та областей видимості
Поліморфізм: створення різних наслідуючих класів з одним і тим самим методом, але різними визначеннями цього методу
Абстракція: за допомогою класів (функцій контруктор)