funkcje JavaScript są definiowane za pomocą słowa kluczowegofunction
.
możesz użyć deklaracji funkcji lub wyrażenia funkcji.
deklaracje funkcji
wcześniej w tym samouczku nauczyłeś się, że funkcje są deklarowane z następującą składnią:
/ / kod do wykonania
}
zadeklarowane funkcje nie są wykonywane natychmiast. Są one „zapisywane do późniejszego użycia” i będą wykonywane później, gdy zostaną wywołane (wywołane).
przykład
return a * b;
}
spróbuj sam ”
średniki są używane do oddzielania wykonywalnych instrukcji JavaScript.
ponieważ deklaracja funkcji nie jest instrukcją wykonywalną, nie jest powszechne kończenie jej średnikiem.
wyrażenia funkcyjne
funkcja JavaScript może być również zdefiniowana za pomocą wyrażenia.
wyrażenie funkcji można zapisać w zmiennej:
przykład
spróbuj sam „
po zapisaniu wyrażenia funkcji w zmiennej, zmienna może być używana jako funkcja:
przykład
var z = x(4, 3);
spróbuj sam ”
powyższa funkcja jest w rzeczywistości funkcją anonimową (funkcja bez nazwy).
funkcje przechowywane w zmiennych nie potrzebują nazw funkcji. Są one zawsze wywoływane (wywoływane) przy użyciu nazwy zmiennej.
powyższa funkcja kończy się średnikiem, ponieważ jest częścią instrukcji wykonywalnej.
Konstruktor Function ()
jak widać w poprzednich przykładach, funkcje JavaScript są definiowane za pomocą słowa kluczowego function
.
funkcje można również definiować za pomocą wbudowanego konstruktora funkcji JavaScript o nazwie Function()
.
przykład
var x = mojafunkcja(4, 3);
spróbuj sam ”
w rzeczywistości nie musisz używać konstruktora funkcji. Powyższy przykład jest taki sam jak pisanie:
przykład
var x = mojafunkcja (4, 3);
spróbuj sam ”
w większości przypadków można uniknąć używania słowa kluczowego new
w JavaScript.
funkcja podnoszenie
wcześniej w tym samouczku nauczyłeś się o „podnoszeniu” (podnoszenie JavaScript).
podnoszenie jest domyślnym zachowaniem JavaScript podczas przenoszenia deklaracji na górę bieżącego zakresu.
podnoszenie dotyczy deklaracji zmiennych i deklaracji funkcji.
z tego powodu funkcje JavaScript mogą być wywoływane przed ich zadeklarowaniem:
funkcja mojafunkcja (y) {
return y * y;
}
funkcje zdefiniowane za pomocą wyrażenia nie są podnoszone.
funkcje samo wywołujące
wyrażenia funkcji mogą być wykonane jako „samo wywołujące”.
samo wywołujące się wyrażenie jest wywoływane (uruchamiane) automatycznie, bez wywoływania.
wyrażenia funkcyjne będą wykonywane automatycznie, jeśli po wyrażeniu nastąpi ().
nie można samodzielnie wywołać deklaracji funkcji.
musisz dodać nawiasy wokół funkcji, aby wskazać, że jest to wyrażenie funkcji:
przykład
var x = ” Hello!!”; / / Powołam się na siebie
})();
spróbuj sam ”
powyższa funkcja jest w rzeczywistości anonimową funkcją samo wywołującą (funkcja bez nazwy).
funkcje mogą być używane jako wartości
funkcje JavaScript mogą być używane jako wartości:
przykład
return a * b;
}
var x = mojafunkcja (4, 3);
spróbuj sam „
funkcje JavaScript mogą być używane w wyrażeniach:
przykład
return a * b;
}
var x = mojafunkcja(4, 3) * 2;
spróbuj sam ”
funkcje są obiektami
operator typeof
w JavaScript zwraca „function” dla funkcji.
ale funkcje JavaScript można najlepiej opisać jako obiekty.
funkcje JavaScript mają zarówno właściwości, jak i metody.
właściwość arguments.length
Zwraca liczbę argumentów otrzymanych podczas wywoływania funkcji:
przykład
zwraca argumenty.length;
}
spróbuj sam ”
metoda toString()
zwraca funkcję jako łańcuch:
przykład
return a * b;
}
var txt = mojafunkcja.toString ();
spróbuj sam ”
funkcja zdefiniowana jako właściwość obiektu, jest wywoływana metodą do obiektu.
funkcja przeznaczona do tworzenia nowych obiektów, nazywana jest konstruktorem obiektów .
funkcje strzałek
funkcje strzałek pozwalają na krótką składnię zapisu wyrażeń funkcyjnych.
nie potrzebujesz słowa kluczowego function
, słowa kluczowego return
i nawiasów klamrowych.
przykład
var x = function (x, y) {
return X * y;
}
// ES6
const x = (x, y) => x * y;
spróbuj sam ”
funkcje strzałek nie mają własnych this
.Nie są one odpowiednie do definiowania metod obiektowych.
funkcje strzałek nie są podnoszone. Muszą być zdefiniowane przed ich użyciem.
użycie const
jest bezpieczniejsze niż użycie var
, ponieważ wyrażenie funkcji jest zawsze wartością stałą.
możesz pominąć słowo kluczowe return
i nawiasy klamrowe tylko wtedy, gdy funkcja jest pojedynczym wyrażeniem. Z tego powodu dobrym nawykiem może być zawsze ich trzymanie:
przykład
spróbuj sam ”
funkcje strzałek nie są obsługiwane w IE11 lub wcześniejszych.