100 pytań rekrutacyjnych Flashcards

1
Q

Czym jest funkcja strzałkowa

A

Uproszczona funkcja nie posiadająca this, arguments czy super, nie może być konstruktorem i najlepiej sprawdza się jako skrócony zapis zwykłych funkcji np. przekazywana jako argument

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Jaki jest najszybszy sposób na pobranie elementu z drzewa DOM

A

od najszybszego do najwolniejszego:

  1. id - getElementById
  2. klasy - getElementByClassName
  3. bracia elementu czyli elementy znajdujące się na tym samym poziomie w trukturze DOM -previousElementSibling
  4. dzieci elementu - children
  5. potomkowie elementów, cyzli wszystkie elementy wewnątrz danego elementu + querzSelectiorAll(“*”)
  6. uniwersalny selektor - wybór wszystkich elementów w dokumencie - *
  7. atrybuty - getAttribute
  8. pseudoklasy - :first-child, :last-child
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Czym jest let?

A

Wersja JavaScript ES6 wprowadziła słowa kluczowe let oraz const, które deklarują zmienną oraz stałą o zasięgu blokowym. Przez to ich zasięg jest ograniczony do bloku czy też wyrażenia, w którym są używane. Natomiast zmienne deklarowane przez var mają zasięg globalny, chyba że były zadeklarowane w funkcji przez co miały lokalny zasięg.

Wywołanie zmiennej przed jej deklaracją powoduje błąd “is not defined”. Przy var nie ma błędu i inicjalizowana jest wartość undefined.

Zdefiniowanie zmiennej let poza funkcją nie dodaje jest do obiektu window. Przy var dodaje.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Czy zdarzenia window.onload oraz document.onload są wywoływane jednocześnie

A

window.onload jest wywoływane, gdy DOM jest gotowy. Natomiast document.onload jest wywoływany kiedy window.onload jest gotowy i załadowany, ale np obrazki jeszcze nie zostały do końca pobrane.

zmienna document.readyState odzwierciedlan postęp ładowania dokumentu:

loading, interactive (parsowanie się końcy, ale dalej ładowane są zasoby)
complete - pełne załadowanie

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Czym jest null i undefined?

A

Null - reprezentuje intencjonalny brak wartości w zmiennej. Jeden z prymitywów JavaScript. Wartość null ma typ Object. Konwertuje się do 0 przy prymitywnych operacjach

Undefined - jest przypisywane jako wartość automatycznie do nowo utworzone zmiennej, jeśli nie została przypisana inna wartość podczas deklaracji zmiennej. Konwertuje się do NaN przy prymitywnych operacjach.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Jaka jest różnica pomiędzy atrybutem a właściwością?

A

Atrybuty to cześć HTML, Przechowuje oryginalną wartość z HTML, Nie wszystkie atrybuty mają właściwości, Modyfikowane za pomocą getAttribute i setAttribute

Właściwości to cecha obiektu DOM, Modyfikowane bezpośrednio np. element.property, Reprezentuje aktualny stan elementu w runtime, Wszystkie właściwości są dostępne w JS

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Czym jest NaN, isNaN, isFinite?

A

NaN - to globalna właściwość reprezentująca wartość “Not-a-Number”. Wskazuje, że wartość nie jest dopuszczalną liczbą. Rzadko się z niej korzysta, ale czasem się pojawia podczas niedozwolonych operacji matematycznych np. Math.sqrt(-1)

isNaN - Funkcja sprawdzająca czy wartość jest niedozwoloną liczbą, zwraca true jeśli tak jest

isFinite - Jest to funkcja sprawdzająca czy wartość to skończona liczba

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Czym jest operator typeof

A

Operator typeof w JavaScript zwraca typ danych przechowywanych w zmiennej.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Jaka jest różnica między window a document?

A

Window - Reprezentuje całe okno przeglądarki, zawiera właściwości globalne takie jak, localStorage, nawigator czy screen, Możesz używać metod związanych z przeglądarką alert(), setTimeout(), jest globalnym obiektem

Document - Reprezentuje dokument HTML, zawiera metody i właściwości do manipulacji elementami DOM, możesz manipulować treścią strony getElementByID, createElement(), jest czescią obiektu window

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Czym jest JSON?

A

JSON - JavaScript Object Notation jest tekstowym formatem danych na bazie składni JavaScript. Jest stosowany w transmisji danych przez sieć.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Jakie są możliwości pobrania elementów z drzewa DOM?

A

getElementByID, getElementsByClassName,
getElementsBytagName
querySelector - zwraca pierwszy element według selectora css
querySelectorAll,
getElementsByName - atrybuty

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Jak można dodać oraz usunąć klasę z elementu?

A

Klasę można dodać oraz usunąć operując na kolekcji classList

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Jak uruchomić kod JavaScript gdy drzewo DOM jest już gotowe?

A
  • umieścić skrypt na końcu strony przed tagiem zamykającym body
  • Umieszczenie kodu w handlerze do wywołania na event DOMContentLoaded
  • Obserwowanie zmian właściwości readyState aż osiągnie stan complete (if document.readyState == “complete”
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Jak odczytać wszystkie kliknięcia na stronie?

A

Można wykorzystać event bubbling.

document.querySelector(“body”).addEventListener(“click”, function(){
});

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Jak można stworzyć Obiekt w JS?

A
  1. Konstruktor Obiektu - let obj = new Object();
  2. Funkcja Create Obiektu - let obj = Object.create(null)
  3. Literał Obiektu - let obj = {}
  4. Funkcja konstruująca - function Item(name) {
    this.name = name;
    }
    let item1 = new Item(“desk”);
  5. Funkcja konstruująca z prototypem
  6. Klasa ES6
  7. Singleton
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Do czego służy funkcja slice i splice?

A

Funkcja slice pozwala na zwrócenie nowej tablicy z wybranymi elementami od startowego indeksu aż do opcjonalnego indeksu jako drugi argument, bez uwzględnienia tego ostatniego elementu. Jeżeli drugi argument jest pominięty wybrane są elementy do końca tablicy.

Funkcja splice - Pozwala na usuwanie oraz dodawanie elementów do tablicy, zwracane są usunięte elementy. Pierwszy argument wskazuje pozycję do dodania albo usunięcia elementów. Drugi opcjonalny argument określa ilość elementów do usunięcia. Każdy kolejny opcjonalny argument jest dodawany do tablicy

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
17
Q

Czym jest funkcja pierwszej klasy, wyższego rzędu, pure currying, unary

A

Funkcje w JavaScript są funkcjami pierwszej klasy, gdyż same same w sobie są obiektami i mogą być argumentem innej funkcji, mogą być zwracane z funkcji, również elementem tablicy czy przypisywane do zmiennych

Funkcja pierwszego rzędu w JS to taka funkcja, która nie akceptuje funkcji jako argumentu i nie zwraca funkcji.

Funkcja wyższego rzędu akceptuje funkcję jako argument albo zwraca funkcję

Funkcja unary to funkcja, która przyjmuje jeden argument (monadic)

Currying to proces tłumaczenia funkcji o wielu argumentach na funkcje o jednym argumencie. Jeśli kolejne argumenty są potrzebne to funkcja o jednym argumencie zwraca kolejną funkcję. Currying zwiększa możliwość ponownego wykonania funkcji.

Funkcja pure to funkcja, która gdziekolwiek wywołana w kodzie z tymi samymi argumentami zwróci taki sam wynik, bez skutków ubocznych.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
18
Q

Czym jest temporal Dead Zone?

A

Temporal Dead Zone to przestrzeń pomiędzy deklaracją zmienne let oraz stałej const, gdzie odwołanie się do tych wartości spowoduje błąd ponieważ nie są jeszcze zadeklarowane.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
19
Q

Czym jest funkcja natychmiastowa?

A

Funkcje natychmiastowe (IIFE) to funkcje wywołane natychmiast po zdefiniowaniu. Funkcje natychmiastowe pozwalają na zdefiniowanie prywatnych zmiennych nie dostępnych poza ciałem funkcji.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
20
Q

Czym jesy hoisting?

A

Hoistiong to sytuacja, gdzie deklaracje zmiennych są przeniesione na początek przed wykonaniem kodu.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
21
Q

Czym są klasy ES6?

A

Klasy ES6 (ECMAScript 2015) w JavaScript to specjalna składnia wprowadzona, aby uprościć tworzenie i zarządzanie obiektami oraz ich dziedziczeniem. Są to swego rodzaju “cukier składniowy” dla istniejącego w JavaScript mechanizmu prototypów. Klasy ES6 są bardziej czytelne i przypominają klasy z innych języków obiektowych, takich jak Java czy Python

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
22
Q

Czym są Closures (domknięcia)

A

to funkcja, która “zapamiętuje” swój leksykalny kontekst nawet po zakończeniu działania funkcji, w której została zdefiniowana. Innymi słowy, funkcja wewnętrzna ma dostęp do zmiennych i zakresu funkcji zewnętrznej, nawet jeśli funkcja zewnętrzna już się zakończyła.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
23
Q

Czym jest Scope?

A

Scope (zakres) określa dostęp do zmiennych, funkcji i obiektów w pewnej konkretnej części kodu w trakcie jego wywołania. Scope determinuje widoczność zmiennych oraz innych zasobów w określonych częściach kodu.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
24
Q

Czym są callback oraz callback hell

A

Callback to funkcja, która jest przekazywana jako argument do innej funkcji i wywoływana w późniejszym czasie, często w odpowiedzi na jakieś zdarzenie lub zakończenie operacji asynchronicznej.

Callbacki są podstawowym sposobem obsługi asynchroniczności w JavaScript, zwłaszcza przed wprowadzeniem Promises i async/await.

Callback hell to sytuacja, w której używanie wielu zagnieżdżonych callbacków prowadzi do trudnego do odczytania i utrzymania kodu. Jest to problem, który pojawia się, gdy wykonujemy serię asynchronicznych operacji, gdzie każda kolejna zależy od wyniku poprzedniej.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
25
Q

Czym jest strict mode?

A

Strict mode (ang. tryb ścisły) to funkcja wprowadzona w języku JavaScript w wersji ECMAScript 5 (ES5), która umożliwia programistom uruchamianie kodu w bardziej restrykcyjnym środowisku. Dzięki temu trybowi możliwe jest unikanie pewnych błędów programistycznych oraz stosowanie lepszych praktyk kodowania.

‘use strict’;

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
26
Q

W jaki sposób można wykorzystać historię w JavaScript?

A

obiekt history dostępny w window pozwala na skierowanie użytkownika do poprzedniej lub kolejnej strony którą odwiedził

27
Q

Jakie typy danych możemy wyróżnić w JavaScript? Jaka jest różnica pomiędzy zmienną niezadeklarowaną a niezdefiniowaną?

A

Number, String, Boolean, Undefined, Object, Null, BigInt, Symbol

niezadeklarowana - zmienne nie istnieją w programie, przy próbie odczytania zwracany jest błąd

niezdefiniowana - istnieją, ale nie mają wartości, przy próbie odczytania zwracane jest undefined

28
Q

Czym jest operator delete? Czym jest podwójna negacja? Czym jest Eval? Czym jest void(0)?

A

Operator delete pozwala na na skasowanie właściwości wraz z jej wartością.

Podwójna negacja zmienia typ zmiennej na typ boolean.

Funkcja eval pozwala na wywołanie wyrażenia zapisanego jako string. To znaczy, że jeżeli w stringu jest dodawanie zostanie ono wykonane. Jest to bardzo zła praktyka.

Void(0) - zapobiega odświeżaniu strony

29
Q

Kto stworzył JavaScript? Porównanie JS do Javy. Czy JS uwzględnia duże litery? Czy JS jest kompilowanym czt interpreterowym językiem? Czym jest ScmaScript?

A

JavaScript stworzył Brendan Eich w 1995 r w firmie Netscape. Początkowo język nazywał się Mocha. Ale ze względów marketingowych zmieniono nazwę na JavaScript w pierwszych wydania beta.

Jak się ma JS do Javy?

JavaScript nijak ma się do Javy. Są to dwa oddzielne języki programowania i nic poza nazwą nie mają ze sobą wspólnego. Oba są językami obiektowymi i jak większość języków ma taką samą bazową składnię jak instrukcje warunkowe, pętle itd.

Czy Java Script uwzględnia duże litery?

JavaScript to język case-sensitive czyli w kodzie uwzględnia duże litery

Czy JS jest kompilowanym czy interpretowanym jezykiem?

JavaScript jest interpretowanym językiem, czyli interpreter czyta kod źródłowy, który jest zapisany w pliku tekstowym i następnie interpretowany jest linijka po linijce

Czym jest EcmaScript?

ExmaScript to standard będący bazą języka JS, ustandardyzowany przez organizację ECMA w standardzie ECMA-262.

30
Q

Po co używać setTimeout(), po co używać setInterval()?

A

Funkcja setTimeout pozwala na wywołanie podanej funkcji w przybliżeniu po zdefiniowanym czasie. Wywoływana jest tylko raz i zwraca id, które można użyć do skasowania timera

Funkcja setinterval działa jak setTimeout z tą różnicą, że wywołuje kod wielokrotnie aż przerwie się ten cykl funkcją clearInterval.

31
Q

Jak uzyskać adres url aktualnej strony? Jakie są składowe obiektu document.location? Jak uzyskać parametr z adresu URL?

A

Można użyć: window.location.href do uzyskania adresu url. Można podmienić url odnosząc się do tej wartości co przekieruje użytkownika.

href - cały url
protocol - https
host - np. policies.google.com
hostname - np. policies.google.com
hash - kotwica w linku
origin - https://policies.google.com
pathname /terms
port - numer portu w URL

Wystarczy new URLSearchParams(url.search)
urlParams.get(“nazwaParamateru”)

32
Q

Jak sprawdzić czy string istnieje w innym stringu?

A
  1. subString
  2. includes (str = “Hello World!” , substring = “World” , str.includes(subString)
  3. użycie wyrażeń regularnych
    (var str = “Hello World” regex = /World/ regex.test(str)
33
Q

Jak sprawdzić czy obiekt ma daną właściwość/klucz?

A
  1. Użycie operatora in
    let obj = {test: “abc” };
    if( “test” in obj) console.log(true);
  2. hasOwnProperty (nie brane są pod uwagę odziedziczone właściwości)
    if(obj.hasOwnProperty(“test”))
  3. porównanie do undefined

if(obj.test1 == undefined)

Jak można enumerować właściwości obiektu?

for (var key in obj)

34
Q

Czym jest obiekt arguments? Czy można dodać właściwość do funkcji? Czym jest polyfill?

A

Jest to obiekt dostępny w każdej funkcji z listą przekazanych argumentów do funkcji

Czy można dodać właściwość do funkcji.

Tak ponieważ funkcje są obiektem

Czym jest polyfill?

Jest to kawałek lodu, który dodaje nowsze funkcjonalności dla starszych przeglądarek, które normalnie ich nie wspierają

np. dla trim

if (!String.prototype.trim) {

String.prototype.trim = function() {
return this.replace(ble ble ble);
}

35
Q

Jak można wyświetlić aktualną datę?

A

let date = new Date()

Jak porównywać daty?

Do porównywania dat powinno używać się timestampów, czyli ilości sekund od 1 stycznia 1970 rok

date.getTime()

36
Q

Jak można sprawdzić czy string zaczyna się innym stringiem?

Jak można pozbawić string białych znaków na początku i na końcu?

Jak zrobić string w wielu liniach?

A

if(“Hello World”. startsWith(“Hello)) // true

używa się do tego trim()

Od ES6 można używać backticków.
łączyć stringi znakiem +
Przy użyciu terminatora linii (niezalecane) “"

37
Q

Jak dodać domyślną wartość do zmiennej? Jak dodać pary kluczy i wartości?

A

let data = a || 10

Za pomocą obiektu
let obj = {}
obj.key1 = “value1”;

Z pomocą nawiasów kwadratowych
obj[“key2”] = “value2”

z dynamiczną nazwą

const keyName = “key3”
obj[keyName] = “value3”

38
Q

Jak używać instrukcji break i continue?

A

instrukcja break pozwala na wyjście z pętli w dowolnym momencie break;

Intrukcja continue przeskakuje jedną iterację

np.
for( let i = 0; i < 10;i++)
if(i% 2 == 0 ) continue; //Jeżeli parzyste przejdź do kolejnej iteracji nie wykonuj console.log
console.log(i);

39
Q

Jak wygenerować losowe liczby? oraz liczby z zakresu

A

Math.floor((Math.random()*100) +1); // od 1 do 100

Math.floor(Math.random() * (max - min +1) ) +min;

40
Q

jak zmienić style elementu html? jak zmienić atrybut elementu html?

A

zmieniając styl elementu
document.getElementsByTagName(‘body’)[0].style.backgroundColor = “green”

dodając klasę
document.getElementsByTagName(‘body’)[0].classList.add(“some-class”);

document.getElementsByTagName(‘body’)[0].setAttribute(“data-info”,”attr value”);

41
Q

Jak wypełnić tablicę początkowymi wartościami? Jak skonwertować tablicę na obiekt? Jak posortować tablicę? Jak odwrócić element tablicy?

A

let arr = new Array(5).fill(0);

let arr = [“car”,”mustang”,”1970”]
let obj = {…arr};

let arr =[“Paweł”,”Ania”,”Barbara”,”Zenon”];
let arrSroted = arr.sort();

let arr = [“Paweł”,”Ania”,”Barbara”,”Zenon”];
let arrSorted = arr.sort();
let reversed = arrSorted.eeverse();

42
Q

Czym jest AJAX?

A

AJAX to Asynchronous JavaScript and HXML używana aby wyświetlić dane asynchronicznie co pozwala na wysyłanie danych na serwer oraz otrzymanie danych zwrotnych dzięki czemu strona będzie bardziej dynamiczna.

43
Q

Czym jest PWA? Jaki będzie rezultat działania 1 + 2 + “3”?

A

PWA to skrót od progressive web applications. Jest to specjalny typ aplikacji mobilnych dostępnych przez internet oraz budowanych w technologiach: Html, CSS oraz JS

Wynikiem działania będzie string “33”

44
Q

Jak zareagować na kliknięcie przycisku back przeglądarki?
Jak wyłączyć menu prawego przycisku myszy?

A

window.onbeforeunload = function() { alert(“Czy zapisać dane?”); };

<body></body>

45
Q

Czym są wrapper objects?
Jak wykryć, że funkcja jest wywołana z operatorem new?

A

to obiekty które opakowują prymitywne typy danych. Dzięki temu możliwe jest stosowanie metod takich jak toUpperCase()

function Car(){
if(new.target) console.log(“new Car()”);
}

46
Q

Jaka jest różnica pomiędzy pętlami for in a for of

A

pętla for in iteruje na kluczach obiektu

pętla for of iteruje na wartościach obiektu

47
Q

Jaka jest różnica pomiędzy call, apply i bind?

A

Funkcja call umożliwia wywołanie funkcji danego obiektu w kontekście innego obiektu.

Apply działa tak samo jak call ale argumenty są przekazywane w formie tablicy

Funkcja bind na stałe wiąże podaną funkcję z danym obiektem i zwraca ją do wielokrotnego wykorzystania

48
Q

Dlaczego stosuje się format JSON?
do czego służy JSON.stringify()?
do czego służy JSON.Parse()?

A

Format JSON stosuje się w komunikacji między aplikacją internetową a serwerem.

Zamienia obiekt na jego reprezentację tekstową w formacie JSON

konwertuje dane z formy tekstowej w formacie JSON na obiekt JS

49
Q

Czy można użyć zarezerwowanych słów jako identyfikatorów? Jak uzyskać szerokość i wysokość obrazka? Jak uzyskać szerokość oraz wysokość okna w JS

A

Nie, nazwy zmiennych, funkcji, labelów, obiektów nie mogą być słowami kluczowymi, jest to niedozwolone

let img = new Image();
img.onload = function() {
console.log(this.width + ‘x’ + this.height); }

img src= ‘https://blebleble’;

Szerokość: window.innerWidth, document.Element.clientWidth, document.body.clientWidth

Wysokość: window.innerHeight, document.Element.clientHeight, document. body.clientHeight

50
Q

Czym jest operator trójelementowy - ternary? Jaka jest różnica między proto a prototype? Czym jest funkcja anonimowa?

A

let info = (4 > 3) ? “większe od 3” : “mniejsze od 3”;

Obiekt __proto__ jest używany do przeszukiwania łańcucha prototypów w celu znalezenia metod czy właściwości. Natomiast prototype jest obiektem w celu zbudowania łańcucha prototypów __proto__ gdy tworzymy nowy obiekt za pomocą new.

Jest to funkcja bez nazwy, przypisywane są do zmiennych albo używane jako callbacki np. dla innych funkcji jak addEventListener

51
Q

Jakie są sposoby aby uruchomić kod JS kiedy strona się załaduje?

A
  1. window.onload = function() {} - Funkcja zostanie wywołane po załadowaniu całej strony z css i obrazkami
  2. document.onload = function()
    Będzie wywołane gdy drzewo DOM będzie gotowe, ale nie zostaną załadowane obrazki i css
  3. <body> - Działa tak samo jak window.onload
    </body>
52
Q

Czym jest metoda freeze()? Dlaczego się używa? Jak wykryć że obiekt jest frozen?

A

Metoda freeze() może być używana na obiekcie aby uniemożliwić jego zmianę np dodawanie, usuwanie właściwości, zmianę konfiguracji, emumeracji czy możliwości zapisu obiektu.

Dlaczego się używa?

Sprawia że obiekty są niezmienne
W programowaniu niektóre elementy API powinny być niezmienne, czyli bez możliwości modyfikacji.

Jak wykryć, że obiekt jest frozen

Object.isFrozen()

53
Q

Jak wykryć, że JS jest włączony na stronie? Jak wykryć preferencje języka?

A

Wystarczy użyć taga noscript, którego zawartość jest prezentowana użytkownikowi gdy JS jest wyłączony <noscript> </noscript>

var language = navigator.Languages && navigator.Languages[0] //Chrome Firefox ||
navigator.Language //Wszystkie przeglądarki || navigator.userLanguage //IE <= 10

54
Q

Czym jest parametr REST? Czym jest operator SPREAD?

A

Parametr REST możwemy użyć w funkcji do pobrania wszystkich przekazanych argumentów do funkcji. Został dodany w ES6

Operator SPREAD pozwala na rozbicie tablic, obiektów, stringów na pojedyncze wartości, elementy

55
Q

Co robi funkcja Object.is()

A

Sprawdza czy dwie podane wartości są takie same czy nie

console.log(Object.is([] , [] ) ); //false bo różne referencje

console.log(Object.is(window, window) // true. Te same referencje

56
Q

Jak uzyskać pary kluczy i wartości właściwości, które są enumerable? Jaka jest różnica między tym a Object.values

A

for( let [key,value] of Object.entries(obj)) {}

Obiekt values zwraca wyłącznie tablicę wartości

57
Q

Jak uzyskać listę kluczy obiektu?
Jak uzyskać listę bezpośrednich właściwości obiektu?

A

for(let key of Object.keys(obj)){}

console.log(Object.getOwnPropertyNames(obj));

58
Q

Jak zakodować i zdekodować adres url?

A

var uri = “https://strona.com/?search=Ogonki śćłnę i inne”;
var encoded = encodeURI(uri);

let decoded = decodeURI(encoded);

59
Q

Dlaczego warto używać obfuscation - zaciemnianie kodu? Czym jest minimalizacja kodu - minification? Jakie są przykładowe programy do minimalizacji kodu JS?

A

Obfuscation jest to proces polegający na zamianę nazw zmiennych, funkcji, obiektów na prostsze nazwy i wraz z innymi operacjami utrudniającymi kod sprawiają, że zajmuje on mniej miejsca przez co strona szybciej się wczytuje.

Jest to proces polegający na usunięciu wszystkich niepotrzebnych znaków jak nadmiarowe spacje, białe znaki, komentarze, długie nazwy zmiennych itd. Wszystko co nie zmienia funkcjonalności kodu, ale zmniejszy jego rozmiar

jsmin, Google Closure Compiler, uglifyJS2, javascript-minifier.com

60
Q

Jaka jest różnica między wewnątrznym a zewnętrznym kodem JS? Jak skonwertować znak stringa na kod ASCII? Jaka jest różnica pomiędzy parametrem a argumentem funkcji?

A

Wewnętrzny kod jest zdefiniowany pomiędzy tagami


Zewnętrzny kod jest zdefiniowany w oddzielnym pliku .js

“test”.charCodeAt(0)

Parametr określa nazwę zmiennej przekazanej do funkcji w jej definicji. Argument to zmienna przekazywana do funkcji podczas jej wywołania

61
Q

Jak połączyć jedną lub kilka tablic? Czym jest funkcja some w tablicy?

A

arr1.concat(arr2,arr3);

Funkcja some służy do przeprowadzania testu czy jakiś element tablicy spełnia warunek przekazanej funkcji

arr1.some( (el) => el === 2 ));

62
Q

Jak ograniczyć liczbę zmiennoprzecinkową do określonej liczny miejsc po przecinku? Co da negacja tablicy?

A

console.log(v.toFixed(1));

Negacja tablicy skończy się wartością false, ponieważ uznawana jest za truthly value więc konwersja na boolean da true, a negacja odwróci na wartość false

63
Q

Jak stworzyć specyficzną ilość kopii w stringu? Jak można strimować początek i koniec stringa?

A

let str = “Test”.repeat(3)

console.log(“ test “.trimLeft() ) “test “
console.log(“ test “.trimStart() ) “test “
console.log(“ test “.trimRight() ) “
test”
console.log(“ test “.trimEnd() ) “
test”

64
Q

Czym jest engine V8? Dlaczego nazywamy JS dynamicznym/ typowanym językiem? Jak stworzyć nieskończoną pętlę?

A

Engine V8 jest projektem open-source szybkiego enginu JS napisanego w C++, który używany jest w Chrome.

Ponieważ zmienne nie mają jasno określonego typu, który maja przechowywać. Każda zmienna prócz const może w dowolnej chwili mieć przypisaną dowolną wartość z dowolnym typem

for(;;){}
while(true){}