Pytania rekrutacyjne dla Front-end developerów
-
Główna różnica polega na wiązaniu
this
:- Funkcje strzałkowe nie mają własnego
this
– dziedziczą je z otaczającego zakresu. - Zwykłe funkcje mają własne
this
, które zależy od sposobu ich wywołania.
const person = { name: "Alice", sayHello: function() { console.log("Hello, my name is " + this.name); }, sayHelloArrow: () => { console.log("Hello, my name is " + this.name); } }; person.sayHello(); // "Hello, my name is Alice" person.sayHelloArrow(); // "Hello, my name is undefined" (bo `this` odnosi się do otoczenia globalnego)
Ponadto funkcja strzałkowa:
- Nie posiada:
super
,argumens
inew.target
. Te wartości definiowane są przez najbliższą funkcję niestrzałkową. - Nie może zostać wywołana za pomocą
new
, bo nie posiada metody construct, więc nie może być konstruktorem. - Nie posiada właściwości
prototype
- Funkcje strzałkowe nie mają własnego
-
Zwykła tablica indeksowana jest za pomocą liczb (zaczynając od 0), pod każdym kolejnym indeksem zapisane są jakieś dane:
arr[5, 4, 3, 2, 1]; arr(0) = 5;
Tablica asocjacyjna zamiast liczb wykorzystuje ciągi znaków. Działa na zasadzie klucz-wartość. W JavaScript tablice nie są asocjacyjne – klucze muszą być liczbami. Do przechowywania par klucz-wartość używa się obiektów:
const obj = { name: "John", age: 30 };