Przegląd funkcji ECMAScript

Co to jest funkcja?

Funkcja to zestaw instrukcji, które mogą być uruchamiane w dowolnym momencie.

Funkcja jest sercem ECMAScript.

Funkcja jest deklarowana w następujący sposób: kluczowe słowo function, nazwa funkcji, grupa parametrów oraz kod do wykonania w nawiasach.

Podstawowa składnia funkcji wygląda tak:

function functionName(arg0, arg1, ... argN) {
  statements
}

Przykład:

function sayHi(sName, sMessage) {
  alert("Hello " + sName + sMessage);
}

Jak wywołać funkcję?

Funkcja może być wywoływana poprzez jej nazwę oraz parametry w nawiasach, jeśli istnieje więcej niż jeden parametr.

Jeśli chcesz wywołać funkcję z poprzedniego przykładu, możesz użyć następującego kodu:

sayHi("David", "Nice to meet you!")

Wywołanie funkcji sayHi() wygeneruje okno ostrzeżenia. MożeszSpróbuj sam tego przykładu.

Jak funkcja zwraca wartość?

Funkcja sayHi() nie zwraca wartości, ale nie musi być specjalnie deklarowana (jak w Java z użyciem void).

Nawet jeśli funkcja rzeczywiście zwraca wartość, nie musi być ona wyraźnie deklarowana. Wystarczy użyć operatora return po wartości do zwrócenia.

function sum(iNum1, iNum2) {
  return iNum1 + iNum2;
}

Poniższy kod przypisuje wartość zwróconą przez funkcję sum() do zmiennej:

var iResult = sum(1,1);
alert(iResult);	//Wyjście "2"

Innym ważnym pojęciem jest to, że, tak jak w Java, funkcja natychmiast przerywa wykonywanie kodu po wykonaniu instrukcji return. Dlatego kod po instrukcji return nie zostanie wykonany.

Przykład, w poniższym kodzie, okno alert nie zostanie wyświetlone:

function sum(iNum1, iNum2) {
  return iNum1 + iNum2;
  alert(iNum1 + iNum2);
}

W jednej funkcji można mieć wiele instrukcji return, jak pokazane poniżej:

function diff(iNum1, iNum2) {
  if (iNum1 > iNum2) {
    return iNum1 - iNum2;
  }
    return iNum2 - iNum1;
  }
}

Powyższa funkcja zwraca różnicę między dwoma liczbami. Aby to osiągnąć, należy odjąć mniejszą liczbę od większej, więc decyzję o wykonaniu którejś z instrukcji return podejmuje się za pomocą instrukcji if.

Jeśli funkcja nie zwraca wartości, można wywołać operator return bez parametrów, aby w każdej chwili wyjść z funkcji.

Przykład:

function sayHi(sMessage) {
  if (sMessage == "bye") {
    return;
  }
  alert(sMessage);
}

W tym kodzie, jeśli sMessage jest równe "bye", komunikat ostrzegawczy nie zostanie wyświetlony.

Komentarz:Jeśli funkcja nie ma wyraźnie zdefiniowanego wartości zwracanej, lub wywołała instrukcję return bez parametrów, rzeczywiście zwrócona wartość to undefined.