Definicja funkcji w JavaScript

Funkcje JavaScript są definiowane przez function kluczowe słowadefiniować.

możesz używać funkcjiHoisting to sposób, w jaki JavaScriptlub funkcjiWyrażenie.

deklaracji funkcji

Wcześniej w tym kursie nauczyłeś się, że funkcje można zdefiniować za pomocą następującej składniHoisting to sposób, w jaki JavaScriptfunkcja:

function nazwaFunkcji(parametry) {
   Kod do wykonania
}

Zadeklarowane funkcje nie są wykonywane bezpośrednio. Są "zachowywane do późniejszego użycia", i będą wykonywane w późniejszym czasie, gdy zostaną wywołane.

Przykład

function myFunction(a, b) {
     return a * b;
}

Spróbuj sam

Średnik jest używany do oddzielania wykonalnych instrukcji JavaScript.

Ponieważ funkcjeHoisting to sposób, w jaki JavaScriptNie są wykonalnymi instrukcjami, kończą się średnikiem rzadko.

wyrażeń funkcji

Funkcje JavaScript mogą również używaćWyrażeniedo definiowania.

Wyrażenia funkcji mogą być przechowywane w zmiennych:

Przykład

var x = function(a, b) {return a * b};

Spróbuj sam

Po zapisaniu wyrażenia funkcji w zmiennej, ta zmienna może być używana jako funkcja:

Przykład

var x = function(a, b) {return a * b};
var z = x(4, 3);

Spróbuj sam

;Anonimowe funkcjeAnonimowa funkcja wywoływana sama siebie

Funkcje przechowywane w zmiennej nie wymagają nazwy funkcji. Zawsze są wywoływane za pomocą nazwy zmiennej.

Powyższa funkcja kończy się średnikiem, ponieważ jest częścią wykonalnego polecenia.

konstruktor Function()

Jak zobaczyłeś w poprzednich przykładach, funkcje JavaScript są definiowane przez function kluczowe słowa.

Funkcja może również być zdefiniowana poprzez Function() Function()

Przykład

wbudowanych funkcji konstruktora JavaScript do jej zdefiniowania.
Funkcje JavaScript mogą być używane jako wartości:

Spróbuj sam

var myFunction = new Function("a", "b", "return a * b");

Przykład

Nie musisz naprawdę używać konstruktora funkcji. Przykład może wyglądać tak:
Funkcje JavaScript mogą być używane jako wartości:

Spróbuj sam

var myFunction = function (a, b) {return a * b}; W większości przypadków możesz uniknąć użycia new

kluczowe słowa.

przenosi

w tym samouczącym kursie nauczyłeś się o "przenoszeniu" (hoisting).Hoisting to sposób, w jaki JavaScriptDeklaracja

Domyślne zachowanie przenoszenia do początku obecnego obszaru działania.

Hoisting dotyczy deklaracji zmiennych i funkcji.

Dlatego funkcje JavaScript mogą być wywoływane przed ich deklaracją:
 myFunction(5);
     function myFunction(y) {
}

return y * y;

Funkcje zdefiniowane wyrażeniem nie są uniesione.

Funkcja wywoływana sama siebie

Wyrażenie funkcji może być "wywoływane samo siebie".

Wyrażenie wywoływane samo siebie jest automatycznie wywoływane (zaczyna się), bez dokonania wywołania. }.

Wyrażenie funkcji jest automatycznie wykonywane, jeśli za wyrażeniem jest

Nie możesz wywołać funkcji deklaracji.

Przykład

Musisz dodać nawiasy okrągłe wokół funkcji, aby wskazać, że jest to wyrażenie funkcji:
    (function () {
var x = "Hello!!";      // Wywołuję siebie}()

Spróbuj sam

;Powyższa funkcja jest tak naprawdęAnonimowa funkcja wywoływana sama siebie

(funkcje bez nazwy).

Funkcje mogą być używane jako wartości

Przykład

function myFunction(a, b) {
    return a * b;
}
Funkcje JavaScript mogą być używane jako wartości:

Spróbuj sam

var x = myFunction(4, 3);

Przykład

function myFunction(a, b) {
    return a * b;
}
Funkcje JavaScript mogą być używane w wyrażeniach:

Spróbuj sam

var x = myFunction(4, 3) * 2;

Funkcje w JavaScriptie są obiektami typeof Operator zwraca "function".

ale najlepiej jest opisywać funkcje JavaScript jako obiekty.

Każda funkcja JavaScript maAtrybutyiMetoda.

arguments.length Zwraca liczbę argumentów otrzymanych przez funkcję przy jej wywołaniu:

Przykład

function myFunction(a, b) {
    return arguments.length;
}

Spróbuj sam

toString() Funkcja zwraca funkcję jako ciąg znaków:

Przykład

function myFunction(a, b) {
    return a * b;
}
var txt = myFunction.toString();

Spróbuj sam

Funkcje zdefiniowane jako właściwości obiektu, nazywane są metodami obiektu.

Funkcje zaprojektowane do tworzenia nowych obiektów, nazywane są funkcjami konstruktora obiektu (konstruktorami obiektów).

Funkcje strzałkowe

Funkcje strzałkowe pozwalają na użycie skróconej składni do tworzenia wyrażeń funkcji.

Nie potrzebujesz słowa kluczowego function, słowa kluczowego return i klamek.

Przykład

// ES5
var x = function(x, y) {
  return x * y;
}
// ES6
const x = (x, y) => x * y;

Spróbuj sam

Funkcje strzałkowe nie mają własnego this. Nie są odpowiednie do definiowania metod obiektu.

Funkcje strzałkowe nie są uniesione. Muszą być zdefiniowane przed użyciem.

Użycie const jest bezpieczniejsze niż var, ponieważ wyrażenia funkcji są zawsze wartościami stałymi.

Jeśli funkcja jest pojedynczym zdaniem, można pominąć słowo kluczowe return i klamry. Dlatego zachowanie ich może być dobrym nawykiem:

Przykład

const x = (x, y) => { return x * y };

Spróbuj sam

IE11 i wcześniejsze wersje nie obsługują funkcji strzałkowych.