Opisz różnice pomiędzy zmiennymi definiowanymi z użyciem var
, let
oraz const
.
-
const
ilet
są z nami od ES6. -
Zmienne zadeklarowane przez
var
ulegają hoistingowi i działają w kontekscie funkcji. dolet
iconst
nie można się odwołać przed inicjalizacją i działają w kontekście blokowym np. pętla forfor (let i = 0; i < 5; i++) { setTimeout(() => console.log(i), 1000) }
- Zmienne deklarowane za pomącą
const
nie mogą być redefiniowanelet score = 10; score = score + 1; const divEl = document.getElementById('div1'); divEl = 10 // Error
Na czym polega hoisting i które elementy mu podlegają?
- Polega na wynoszeniu zmiennych i funkcji (zadeklarowanych za pomocą słowa
function
) na sam początek scope'u. - Zmienne deklarowane za pomocą
const
ilet
też ulegają hoistingowi, lecz trafiają do Temporal Dead Zone (TDZ)
Opisz różnice pomiędzy funkcją definiowaną z użyciem słowa kluczowego function
a arrow function.
- Arrow function nie tworzy zakresu
- Do funkcji zadeklarowanej słowem kluczowym
function
można odwoływać się i przed i po zadeklarowaniu
Jaka jest różnica pomiędzy metodami map()
oraz forEach()
. Do czego możemy wykorzystać te metody.
- Metoda
map()
zwraca nową tablice - Metoda
forEach()
działa na oryginalnej tablicy. Więc nie powinno się zmieniać elementów tablicy tym sposobem (a zwłaszcza kiedy nie rozumie się różnicy)
Jak działa metoda reduce()
? Jakie argumenty przyjmuje ta metoda oraz przekazany do niej callback?
- todo
Wymień różnice pomiędzy Cookies
, Local Storage
i Session Storage
| x | Cookies | Local Storage | Session Storage |
| ---------------------- | --------------------- | ------------- | ------------------ |
| **Max rozmiar** | 4kb | 10mb | 5mb |
| **HTML** | HTML4 / HTML5 | HTML5 | HTML5 |
| **Dostępność** | tylko dana domena | każde okno | to samo okno |
| **Żywotność** | do ustawienia | nigdy | do zamknięcia okna |
| **Lokalizacja** | przeglądarka i server | przegladarka | przegladarka |
| **Wysyłany w request** | tak | nie | nie |
Opisz różnicę pomiędzy kompozycją a dziedziczeniem uwzględniając wady i zalety każdego z tych podejść.
Wymień kilka wzorców pozwalających na tworzenie obiektów.
- Poprzez zwykle
const obj = {}
- Za pomocą klas
const obj = new Obj()
- Używając fabryk
factory function
const list = () => { const items = []; return { addItem = (item) => items.push(item), showItems = () => items } }
Na czym polega bąbelkowanie (ang. bubbling) oraz propagacja zdarzeń?
- todo
W jaki sposób jednowątkowy język, jakim jest JS pozwala na wykonywanie asynchronicznych operacji? Czym jest event loop?
- Aby nie blokować wykonywanego kodu wykorzystujemy
Promise
funkcja działa w tle i gdy się skończy wykona się callback -
Można używać
.then()
alboasync await
-
async await
jest czytelniejsze i wykorzystujetry { await doSomething(); } catch(error) { cnosole.error(error) }
Czym jest `Symbol`?
- todo
Na czym polega mechanizm koercji w języku JavaScript?
- todo
Wymień różnice między `axios` a `fetch`.
- todo
Co to jest domknięcie? Podać przykład kodu.
- Closure jest wtedy, kiedy mamy dostęp do zmiennej poza jej obecnym zakresem
-
const points = () => { let score = 0;
return { getScore:() => score, addScore: (scores) => score += scores }
}
Jaka jest różnica między `==` i `===`?
W jaki sposób możemy zmienić kontekst wywołania funkcji?
- bind(this) - zwraca funkcję z nowym kontekstem
- call() - wywołuje funkcje z nowym kontekstem, od apply rózni się tym ze tu oarametry do funkcji przekazuje się po przecinku a nie w tablicy
- appy() - wywołuje funkcje z nowym kontekstem, parametry funkcji są przekazywane w tablicy
Jakie znasz sposoby optymalizacji wydajności stron internetowych?
- Używanie Server Side Rendering (Next.js, vuex)
- Code spliting np. lazy load - zmiejsza rozmiar początkowego bundle'a dzieki czemu strona ładuje się szybciej [todo link]()
Co to jest `use strict`
Co to jest `ajax`
Czym jest i do czego jest używana funkcja natychmiastowa (IIFE)?
Co to jest `hoisting`?
Wymień typy w JS (Prymitywne i Referencyjne)
Czy w JS'ie występuje dziedziczenie?
- tak np.
class App extends React.Component {}
-
Czym różni się
mongo db
odmysql
-
Klasy kodów
HTTP
(200, 300, 400, 500) -
Metody
HTTP
(PUT
,GET
,PATCH
,POST
,DELETE
) - różnica międzyPUT
iPATCH
-
Tworzenie sessji http, headers, token
-
Gdzie dodać znacznik script? przed zamknięciem body, czy w nagłówku? // przed zamknięciem body
-
Ile może być maksymalnie znaczników
nav
? // 1 (ułatwienie dla osob np niewidzących) -
Jak przekazać z html do css jakieś stringi ? //
data-atrybut
-
Jak tworzyć i konfigurować tokeny w
axios
-
Jaka jest różnica w
sass
pomiędzyplaceholder
amixin
-
Sposoby optymalizacji kodu
-
Konfiguracja webpacka
-
czym się rózni deklaracja funkcji od przypisania jej do zmiennej
-
czym są genric type (typescript);
-
czym jest redux thunk
-
opisz działanie reduxa
-
czym się rózni object programing od functional programming
-
Jak działa
jwt
-
róznice między
HTTP
aHTTPS
-
git
merge
vsrebase
-
czym jest
mock
- Mock to obiekt, którego używa się zamiast rzeczywistej implementacji w trakcie testów jednostkowych. -
do czego sluzy cron - cron jest opartym na czasie programem do harmonogramowania zadań w systemach operacyjnych z rodziny Unixa. Może zostać wykorzystany do uruchamiania zadań (programów, komend, skryptów) o określonych godzinach,
-
do czego słuzy indeksowanie w bazie danych
-
w jaki sposób wysyłasz zapytania do api // postman insomnia przeglądarka