JS: 120 pytań

Napisz funkcję z memoizacją i ciągiem Fibonacciego

senior

Dlaczego warto odchodzić od "document.getElementById" na rzecz "document.querySelector"?

junior

Gdzie stosownie domknięć (closures) nie jest zalecane?

mid

Jak w JS zasymulować wielowątkowość?

mid

TypeScript: jaka jest różnica między typowaniem stringów wielką, a małą literą?

const name: (S/s)tring = 'K'

junior

Napisz funkcję, która będzie wywoływać się co 0,5 sekundy. Funkcja powinna wywołać się nie więcej niż 4 razy. Dodatkowo powinna mieć opcje natychmiastowego zatrzymania.

mid

W jaki sposób obsługiwany jest setInterval i setTimeout? Kiedy zostaną obsłużone jeśli mamy nieskończenie wiele console.log'ów? (pytanie o Event Loop)

junior

Jak można komunikować się z serwerem?

junior

Napisz funkcję, która wyświetli wynik tak jak poniżej:

true, false, true, false,
true, false, true, false
junior

Jaka jest różnica między Object.freeze a Object.seal ?

mid

Czym są promises?

junior

W jaki sposób zczytać wartość wpisaną do <input> ?

junior

Jaka jest różnica pomiędzy call a apply?

junior

Jakie znasz możliwości deklaracji zmiennych i jakie są ich zakresy (ES5 i ES6) ?

junior

Co wiesz o ES6?

junior

Czym jest JSON? - rozwiń skrót i opisz do czego służy

junior

Czym różni się null od undefined?

junior

Jaka jest różnica między Spread Operator a Rest Parameters?

junior

Czym jest spread operator w ES6, w jakich sytuacjach się przydaje?

junior

Jak uchwycić referencję do elementu HTML z poziomu JS?(document.getElementById, document.querySelector itd)

junior

Która odpowiedź ma niepoprawną skałdnię:

a) 42.toFixed(3);
b) 42..toFixed(3);
c) 42 .toFixed(3);
junior

Jak mają się do siebie poszczególne technologie/narzędzia?

Babel, Webpack, Gulp, NPM, node, Typescript, Flow, Babel Less Loader

Chodzi głównie o to, które z powyższych się wykluczają (nie ma sensu używać razem), w jakiej kolejności są używane: Przykład: "npm ściąga zależności, może też uruchomić skrypt webpacka, który dla danego typu pliku używa odpowiedniego loadera (less - less loader, js - babel)."

mid

Co to jest Ecma TC39? Jakie są tzw. "stages" i jakie jest ryzyko związane z używaniem standardów na różnych "stages".

mid

Jakie znasz sposoby wyczyszczenia tablicy z elementów?

junior

Czym się różni node od element?

mid

Czym są i do czego służą source-mapy?

mid

Kiedy i dlaczego używa się funkcji throttle i debounce ?

mid

Co daje nam użycie klasy Proxy? Kiedy nam się to może przydać?

senior

Czym są i do czego służą operatory bitowe?

senior

Jaki będzie wynik tego kodu?

 console.log(3+"3");
junior

Wyjaśnij na czym polega programowanie asynchroniczne w JS.

mid

Dana jest funkcja:

function check(x) {
  return x ? x : new Error();
}

Zakładając, że x jest liczbą z przedziału od -20 do 20, to dla jakiego x zostanie zwrócony Error?

junior

Jaki będzie wynik operacji?

var string = 'FeFaq to najlepsza baza pytań'
.split('').reverse().join('');
junior

Napisz funkcję, ktora sprawdza, czy podana liczba jest liczba pierwszą.

junior

Czy JavaScript jest case sensitive ?

junior

ES6, co wnosi, a co wnosi ES5?

junior

Co wyświetlą logi?

var foo = 'hello';
(function () {
 var bar = 'world'
	console.log(foo + bar);
})()
console.log(foo + bar);
junior

Jaki będzie kolejność logów?

console.log('one');
setTimeout(function() {
	console.log('two');
}, 0)
console.log('three');
junior

Jak można iterować po tablicach? Wszystkie odpowiedzi typu 'for, while, map, filter, forEach' poprawne.

junior

Jak przejąć kontrolę nad right-click'iem myszki?

mid

Jak za pomocą jQuery wybrać pierwszy element z tablicy ?

junior

Wyjaśnij w jaki sposób przekazywane są argumenty do funkcji w JS. Czym się różni ten sposób od przekazywania przez wartość (pass by value) albo przez referencję (pass by reference)? Jakie są tego implikacje?

senior

Jaki będzie wynik wywołania setTimeout z wartością czasu 0?

junior

Wyjaśnij czym są cookies.

junior

Jaka jest różnica między zadeklarowaniem zmiennej z użyciem słowa var a z pominięciem?

var x = 1; 
// vs
y = 1;
junior

Wyjaśnij różnice pomiędzy zdarzeniem click, a atrybutem onclick.

junior

Czym jest capturing phase w zdarzeniach?

mid

Napisz algorytm, który sprwadzi czy nawiasy w ciągu znaków są domknięte i pasujące.

Na przykład, "{ac[bb]}", "{dklf(df(kl))d]{}" i "{[[[]]]}" są poprawne. Ale "{3234[fd" i "{df][d}" już nie.

mid

Czym jest ternary operator?

junior

Czym Jest DOM?

junior

Jak zaimplementować stos (Stack) w JS

junior

Czy dane przechowywane w localStorage są widoczne w innych aplikacjach (pod innymi domenami)?

junior

Opisz czym jest kolejka zdarzeń / pętla zdarzeń (event loop).

senior

Jaki będzie wynik sprawdzenia tego warunku?

console.log(3 > 2 > 1);

Dlaczego tak się dzieje?

mid

Czym są polyfille i do czego służą? Czym różni się polyfill od shim?

mid

dlaczego [1,2,3] === [1,2,3] zwraca false?

junior

Dana jest tablica ciągu liczb, np. [4, 7, 3, 2, 1, 7, 5, 3, 12, 13]... (dużo więcej liczb). Znajdź najdłuższy, monotoniczny podciąg w tej tablicy. Czas 30 minut.

senior

Czy rozszerzanie prototypów obiektów wbudowanych w JavaScript (np. Array.prototype albo Object.prototype) jest dobrym pomysłem?

junior

Jaka jest różnica pomiędzy metodami empty, remove a detach w jQuery?

junior

Czym jest Property Descriptor? Omów jego składowe.

mid

Czym jest propagacja i delegacja zdarzeń?

junior

Wyjasnij pojecia immutability oraz persistent data structures?

senior

Czym sa funkcje wyższego rzędu (higher order functions)?

mid

Na czym polega memoizacja?

mid

Napisać TODO app zgodnie z MVC. Wymagania: dodawanie / usuwanie / pobieranie listy zadań z serwera (istniejące REST API, napisać tylko front-end).

mid

Stworzyć w VueJS dropdown, który ma kilkanaście opcji. Każda opcja wyświetlana jest z użyciem innego fonta z Google Fonts, a etykieta opcji zawiera nazwę tego fontu. Po wyborze danej opcji z dropdowna tekst obok powinien zostać wyświetlony z użyciem wybranego fontu.

junior

Jaka jest różnica między null a undefined?

junior

Scharakteryzuj programowanie funkcyjne.

junior

Co to jest pure function?

junior

Jak można odczytać cookie w JS?

junior

Jaki jest zakres widoczności zmiennych (scope)?

junior

Podaj przykład wycieku pamięci (memory leak). Jak mu zaradzić?

mid

Czym jest prototype?

mid

Jaka jest różnica między klasą a obiektem?

junior

Jaki będzie output logów poniższego kodu:

for (var i = 0; i < 10; i++) {
    setTimeout(function() { 
		console.log(i);
		}, 100 * i);
}
junior

Jaka jest różnica między Java a JavaScript?

junior

Co to jest npm i do czego się go używa?

junior

Napisz funkcję, która jako argument przyjmuje ciąg znaków (zdanie) i zwraca ten ciąg znaków, ale z każdym słowem rozpoczynajacym się od wielkiej litery.

Przykład: "john doe foo bar", oczekiwany wynik: "John Doe Foo Bar".

junior

ECMAScript i JavaScript — jaka jest różnica?

junior

Czym jest klasa w programowaniu?

junior

Napisz funkcję, która przyjmuje ciąg znaków (zdanie) i ciąg znaków z odwróconą kolejnością słów. Przykłąd: Dla "Ala ma kota" funkcja ma zwrócić "kota ma Ala".

junior

Czym jest callback?

junior

Kiedy NIE używać arrow function

junior

Na co wskazuje this w JavaScript? Podaj przykłady.

junior

Jakie znasz typy danych?

junior

Czym sa localStorage, sessionStorage oraz cookies i czym się różnią?

junior
document.getElementsByTagName('input')[0]
.addEventListener('focus', () => {
   console.log(this);
});

Na co wskazuje this w tej funkcji?

junior

Do czego służą funkcje setTimeout oraz setInterval? Jak wyczyścić (anulować) interval lub timeout?

junior

Jakie znasz struktury danych?

junior

Opisz wzorzec MVC.

junior

Czym jest destrukturyzacja w ES6?

junior

Czym jest barrel w ES6 i do czego służy?

mid

Jak sklonować obiekt w JS?

junior

Promise vs callback — omów różnice, kiedy stosuje się jeden, a kiedy drugi?

mid

Function vs arrow Function - omów różnice

junior

Co to są falsy values? Jakie falsy values znasz?

junior

Na czym polega referencja? Jakie typy danych są przekazywane przez referencję w JS?

junior

Jaka jest różnica pomiędzy function expression a function declaration?

mid

Do wykonania zadanie polegające na wysłaniu Ajaxem obiektu i zapisaniu w localStorage tokena, który dostanie się w ramach odpowiedzi. W przypadku błędu wyświetlić komunikat o błędzie.

junior

Jakie znasz rodzaje pętli?

junior

Jaka jest różnica między var, let i const? Który jest preferowany?

junior

Na czym polega bąbelkowanie zdarzeń (event bubbling)?

junior

Czym są union types i intersection types w TypeScript

mid

Do czego służy tryb 'use strict'?

mid

Wytłumacz na czym polega hoisting.

junior

Wyjaśnij do czego służą funkcje call, bind i apply oraz wskaż różnice pomiędzy nimi.

mid
if ([]) {
  console.log('hello');
}

Czy console.log się wywoła?

junior
const person = { name: 'John' };
person.name = 'Monica';

Czy property name zostanie podmienione na nową wartość, mimo użycia const?

junior

Czym jest garbage collector?

junior

Napisz funkcję, która zamienia pierwsze litery słów na wielki w dowolnym zdaniu.

Przykładowo: Dla ala ma kota funkcja ma zwrócić Ala Ma Kota.

junior

Czym jest IIFE i do czego się je wykorzystuje?

junior

Czym są domknięcia (closures) ?

junior

Dlaczego zazwyczaj skrypty podłączamy przed zamknięciem tagu body?

junior

Jaka jest różnica pomiędzy podwójnym a potrójnym porównaniem w JS? == vs ===

junior

Czym jest currying i partial application?

mid

Dany jest string domino "1-2,2-1,1-2,3-1,2-3,3-4,4-3,3-2,2- 1,1-1,1-1,1-2,2-1,1-2,3-2,1-2".

Napisz funkcję, która zwróci długość najdłuższego, poprawnego ciągu domino.

W tym przypadku ten ciąg to "2-3,3-4,4-3,3-2,2-1,1-1,1-1,1-2,2-1,1-2", a jego długość to 10.

mid

Nie zmieniając warunków pętli, wyświetl w console.log liczby w kolejności od 9 do 0:

for (var i = 0; i < 10; i++) {
  console.log(.....);
}
junior

Co to są TypeScript i Flow?

junior

Co nowego w ES2015, ES2016, ES2017 i ES2018?

mid

Jakie znasz biblioteki JS?

junior

Czegoś brakuje? Możesz dodać własne pytania!