CORE Flashcards
Какво е JavaScript?
динамичен, синхронен интерпретиран програмен език.
Обичайно се използва за клиентска скриптова разработка в уеб програмирането.
Какво е Node.js?
отворена платформа, крос-платформено среда за изпълнение на JavaScript на сървърната страна.
Кои са ппарадигмите в JavaScript?
- Императивно - ясно определени стъпки;
- Функционално - чрез функции;
3.ООП - чрез система за наследяване на обекти и класове;
4.Асинхронно - пишем код, който може да извършва много действия едновременно без да блокираме предходни операции;
5.Модулно - разделяме кода на малки и преизползваеми модули;
6.Събития - създава се интерактивен потребителски интерфейс, като се следи за случващи се събити на уеб страницата (клик на мишка, клавиш);
Защо да използваме ‘use strict’?
Пише се най-горе във файла, открива скрити грешки (silent), задължително спазва добрите практики за програмиране, по-лесно отстранява грешки, подобрява производителноста.
Каква е разликата между ‘var’, ‘let’, ‘const’?
Кл. думи за деклариране на променливи, различават се по скоупа им.
‘const’ - константите не могат да променят стойноста си; блок скоуп;
‘let’ - могат да променят стойноста си; също са с блок скоуп;
‘var’ - ДЕКЛАРИРА променлива; глобален или функционален скоуп; !!!могат да се достъпват преди инициализацията им, това води до грешки!!!
Какви типове данни познавате в JavaScript?
Примитивни и референтни.
Примитивни: number, string, boolean, null, undefined, symbol
Референтни: object, array, function. допълнение - Date, regEx, Map, Set
Каква е разликата между ‘==’ и ‘===’?
Оператори за сравнение.
‘==’ - преди да направи сравнението, JS ще обърне двете стойности в един тип;
’===’ - сравнява стойностите без да променя техния тип.
Какво е type coercion?
Типовото преобразуване е автоматичното преобразуване на стойности от един тип в друг.
Какво са Higher-Order Functions и Callback functions?
HOF - приемат други функции като аргумент и връщат функция като резултат.
Callback - функция, която е подадена като аргумент на друга функция и се извиква по-късно, когато основната функция е завършила изпълнението си.
Какви типове функции познавате и каква е разликата между тях?
Function Declaration - деклариране на функция с име; function name(){}
Function Expression - закачаме функция към промелива, хойства се само променлива;
Arrow Function - съкращение на function expression, не поддържа .this;
HOF - map, filter, reduce;
разлика: работят с други функции подадени като аргумент и връщат функции;
Pure Functions - винаги връщат един и същ резултат;
разлика: нямат странични ефекти;
Странични ефекти - промени в резултата, console.log, изпращане на заявки;
IIFE (Immediately Invoked Function Expressions) - анонимна функция, която се извиква незабавно след дефинирането й, създават закрити области с обхват;
Какво е Hoisting?
Променливи и функции се издигат в техния скоуп по време на компилация на кода, преди той да бъде изпълнен.
Декларациите се издигат с цялото си тяло;
Expressions/ Arrow - функциите не се издигат, а само променливите, към които са закачени;
Всички променливи се издигат, но не могат да се използват преди инициализация;
Какво е Scope?
Област на виждане, определя видимостта и достъпността на променливи и функции в програмата;
Глобален - ако се дефинира извън функции и блок скоупове, достъпват се отвсякъде в програмата;
Локален - достъпват се само в определени части на програмата, дефинират се в блокове като ‘if’, ‘for’, ‘while’;
Функционален - във функциите и само в тях;
Блоков - чрез ‘let’, ‘const’ или { }, видими само в тях;
Лексически - определя се по време на парсинг процеса, а не по време на изпълнение, видимоста на променливите се определя от позицията им в кода;
Lexing-time - парсинг, компилация на кода, което се иползва от интерпретатора.
Динамичен - базира се на текущото състояние на стека по време на изпълнение;
Какво е Closure?
Closure е способността на функцията да запази достъп до своя лексически скоуп след като е завършила изпълнението си.
Виктор Вълчев: Функцията събира всичко нужно за нейното изпълнение и го държи вътре в себе си.
Какво е Exception?
Събитие, което настъпва по време на изпълнение на програма и прекъсва нормалния ход на действия. Предизвиква грешки.
Защо да използваме try{} catch{} блок?
Служи за обработка на Exceptions, управлява грешките по време на изпълнеине. В try блока вкарваме всички инструкции, които искаме да изпълним и биха хвърлили грешка; В catch блока хващаме тези грешки появили се в try блока.