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 i new.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
  • 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 };