JavaSkrypt Definiuje i Wywołuje Funkcje z Przykładem

⚡ Inteligentne podsumowanie

JavaFunkcje skryptowe grupują wielokrotnego użytku bloki kodu, które są uruchamiane tylko po wywołaniu. W tym przewodniku pokazano, jak zadeklarować taką funkcję, przekazać do niej argumenty i zwrócić wartość z powrotem do wywołującego.

  • 🔘 Składnia: Każdą klasyczną funkcję definiuje słowo kluczowe function, nazwa, nawiasy i nawiasy klamrowe.
  • Powołanie: Code wewnątrz funkcji wykonuje się tylko wtedy, gdy nazwa funkcji jest wywoływana za pomocą nawiasów.
  • argumenty: Wartości umieszczone w nawiasach przekazują dane od wywołującego do ciała funkcji.
  • 🧪 Powrót: Słowo kluczowe return odsyła wartość do wywołującego i zatrzymuje wykonywanie w tym momencie.
  • 🛠️. Warianty: Deklaracje, wyrażenia, funkcje strzałkowe, IIFE i wywołania zwrotne — każde z nich nadaje się do innej sytuacji.
  • 📊 Zakres: Deklaracje funkcji są podnoszone, natomiast wyrażenia funkcji i funkcje strzałkowe nie.

JavaSkrypt Definiuje i Wywołuje Funkcje

W czym jest funkcja JavaScenariusz?

Funkcje są bardzo ważne i przydatne w każdym języku programowania, ponieważ umożliwiają wielokrotne wykorzystanie kodu. Funkcja to blok kodu, który zostanie wykonany tylko po wywołaniu. Jeśli masz kilka linijek kodu, które muszą zostać użyte wielokrotnie, możesz utworzyć funkcję zawierającą powtarzające się linijki kodu, a następnie wywołać ją w dowolnym momencie.

Nic w nawiasach klamrowych nie działa samoczynnie. Przeglądarka zapisuje blok pod nadaną mu nazwą, a kod jest wykonywany tylko wtedy, gdy nazwa ta zostanie podana z nawiasami, na przykład: myFunction()Funkcje znajdują się zatem w centrum każdego JAVASCRIPT program, czy skrypt żyje wewnątrz strony lub w pliku zewnętrznym.

Jak utworzyć funkcję w JavaScenariusz

  1. Użyj słowa kluczowego funkcjonować po którym następuje nazwa funkcji.
  2. Po nazwie funkcji otwórz i zamknij nawiasy.
  3. Po nawiasie otwórz i zamknij nawiasy klamrowe.
  4. W nawiasach klamrowych napisz swoje wiersze kodu.

Składnia:

function functionname()
{

  lines of code to be executed

}

Poniższy przykład definiuje myFunction() a następnie wywołuje go w następnym wierszu, aby komunikat pojawił się natychmiast po załadowaniu strony. Spróbuj sam:

<html>
<head>
	<title>Functions!!!</title>
	<script type="text/javascript">
      function myFunction()
      {
      	document.write("This is a simple function.<br />");
      }
		myFunction();
	</script>
</head>
<body>
</body>
</html>

Funkcja z argumentami

Można również tworzyć funkcje z argumentami. Argumenty należy podawać w nawiasach.

Składnia:

function functionname(arg1, arg2)

{

  lines of code to be executed

}

Tutaj countVowels() Odbiera imię, które użytkownik wpisze w monicie, przechodzi przez każdy znak i raportuje, ile samogłosek zawiera imię. Spróbuj sam:

<html>
<head>
	<script type="text/javascript">
		var count = 0;
		function countVowels(name)
		{
			for (var i=0;i<name.length;i++)
			{
              if(name[i] == "a" || name[i] == "e" || name[i] == "i" || name[i] == "o" || name[i] == "u")
              count = count + 1;
			}
		document.write("Hello " + name + "!!! Your name has " + count + " vowels.");
		}
   	 	var myName = prompt("Please enter your name");
    	countVowels(myName);
	</script>
</head>
<body>
</body>
</html>

JavaWartość zwracana przez skrypt

Można także tworzyć funkcje JS zwracające wartości. Wewnątrz funkcji musisz użyć słowa kluczowego powrót po którym następuje wartość, która ma zostać zwrócona.

Składnia:

function functionname(arg1, arg2)

{

  lines of code to be executed

  return val1;

}

W tym ostatnim przykładzie returnSum() Zwraca sumę do wiersza, który ją wywołał, dzięki czemu wynik można połączyć w zdanie, zamiast drukować go wewnątrz funkcji. Spróbuj sam:

<html>
<head>
	<script type="text/javascript">
		function returnSum(first, second)
        {
          var sum = first + second;
          return sum;
        }
      var firstNo = 78;
      var secondNo = 22;
      document.write(firstNo + " + " + secondNo + " = " + returnSum(firstNo,secondNo));
	</script>
</head>
<body>
</body>
</html>

Typy funkcji w JavaScenariusz

Wszystkie trzy powyższe przykłady wykorzystują klasyczną deklarację funkcji, ale nowoczesną JavaSkrypt oferuje kilka innych form. Różnią się one głównie tym, czy silnik je podnosi i jak każda z nich traktuje this słowo kluczowe.

Typ funkcji Typowa składnia Kiedy jest używany
Deklaracja funkcji funkcja powitanie() { } Nazwana, wielokrotnego użytku logika; podniesiona na szczyt swojego zakresu
Wyrażenie funkcji const powitanie = funkcja () { }; Przechowywanie funkcji w zmiennej, nie podniesionej
Funkcja strzałkowa (ES6) const powitanie = () => { }; Krótkie wywołania zwrotne; dziedziczy to z otaczającego zakresu
Funkcja anonimowa ustawTimeout(funkcja () { }, 100); Jednorazowa logika przekazana bezpośrednio do innej funkcji
IIFE (funkcja () { })(); Działa natychmiast i zachowuje prywatne zmienne
Callback items.forEach(showItem); Funkcja przekazana innej funkcji i wywołana później

Uwaga dotycząca powyższych przykładów: historyczne próbki wykorzystują var oraz document.write()i oba nadal działają w każdej przeglądarce. Obecnie stosuje się deklarowanie zmiennych za pomocą let or const i drukuje dane wyjściowe przez console.log() lub ustawiając textContent na elemencie, ponieważ document.write() czyści stronę, której ładowanie już się zakończyło. type="text/javascript" Atrybut jest opcjonalny również w HTML5.

Parametry funkcji, argumenty i wartości domyślne

Parametry to nazwy zastępcze wymienione w definicji, natomiast argumenty to rzeczywiste wartości podawane podczas wywołania funkcji. countVowels(name) powyżej, name jest parametrem, a tekst wpisany w monicie jest argumentem.

function greet(user, greeting = "Hello")
{
  return greeting + ", " + user;
}

greet("Ann");
greet("Ann", "Welcome");
  • Parametr bez pasującego argumentu staje się undefined chyba że podano wartość domyślną, jak greeting jest tutaj.
  • Dodatkowe argumenty są ignorowane przez listę parametrów, ale pozostają dostępne poprzez arguments obiekt wewnątrz dowolnej funkcji innej niż strzałkowa.
  • Parametr odpoczynku zapisany jako ...values zbiera każdy pozostały argument w jeden autentyczny szyk.

Zakres funkcji i podnoszenie w JavaScenariusz

Miejsce zapisu funkcji decyduje o tym, co może ona zobaczyć i kiedy może zostać wywołana. Dwie zasady wyjaśniają niemal każdą niespodziankę, z jaką spotykają się początkujący.

  • Podnoszenie: Deklaracje funkcji są przenoszone na górę zakresu przed uruchomieniem skryptu, więc można je wywołać w wierszu powyżej ich definicji. Wyrażenia funkcyjne i funkcje strzałkowe nie są podnoszone i generują błąd, jeśli zostaną wywołane wcześniej.
  • Zakres: zmienne zadeklarowane za pomocą var wewnątrz funkcji są widoczne w całej tej funkcji, podczas gdy let oraz const są ograniczone do bloku, w którym się znajdują. Wszystko, co zadeklarowano poza każdą funkcją, jest globalne.

W praktyce pokazuje to licznik samogłosek. count zmienna jest zadeklarowana poza funkcją, więc wywołanie countVowels() Drugie wywołanie na tej samej stronie kontynuuje dodawanie do poprzedniej sumy zamiast zaczynać od zera. Przeniesienie deklaracji wewnątrz funkcji powodowałoby jej resetowanie przy każdym wywołaniu.

Te scoping reguły przenoszą się również do kodu po stronie serwera, dlatego takie samo rozumowanie ma zastosowanie, gdy funkcje są pisane dla node.jsi dlaczego zachowanie funkcji pojawia się tak często w JavaPytania do wywiadu scenariuszowego.

FAQ

Funkcja nadal działa, ale oddaje undefined. Przypisanie tego wywołania do zmiennej przechowuje undefined, dlatego przykład sumy używa return zamiast drukowania sumy wewnątrz ciała funkcji.

Asystenci AI mogą podpowiadać treść funkcji na podstawie komentarza, wyjaśniać nieznane wywołanie zwrotne wiersz po wierszu i proponować dane wejściowe do testów. Zawsze uruchamiaj sugestię, ponieważ wygenerowany kod może po cichu zakładać zmienną lub interfejs API przeglądarki, którego strona nie udostępnia.

Zazwyczaj tak. Drugi pilot GitHub Uzupełnia składnię strzałek i typowe wzorce wywołań zwrotnych z kontekstu. Sprawdź wartość this w rezultacie, ponieważ funkcja strzałkowa dziedziczy to, podczas gdy klasyczne wyrażenie funkcyjne nie.

Domknięcie to funkcja powiązana ze zmiennymi zewnętrznymi, do których odwoływała się podczas tworzenia. Funkcja wewnętrzna odczytuje te zmienne nawet po zakończeniu działania funkcji zewnętrznej, w ten sposób budowane są liczniki prywatne i funkcje fabryczne.

Tak, i to się nazywa rekurencja. Funkcja musi zawierać przypadek bazowy, który zatrzymuje łańcuch, w przeciwnym razie przeglądarka zgłosi błąd zakresu po wyczerpaniu stosu wywołań. Rekurencja sprawdza się w przypadku problemów z przechodzeniem po drzewie i w stylu silni.

Funkcja asynchroniczna zawsze zwraca obietnicę. Wewnątrz niej, funkcja „await” wstrzymuje działanie funkcji do momentu, aż oczekiwana obietnica zostanie spełniona, umożliwiając asynchronicznemu kodowi odczyt od góry do dołu. Reszta strony nadal odpowiada, podczas gdy funkcja czeka.

Połącz go z nasłuchiwaczem zdarzeń: wybierz przycisk, a następnie wywołaj addEventListener z nazwą zdarzenia i odwołaniem do funkcji. Starszy, wbudowany atrybut onclick również działa, choć teraz preferowane jest oddzielenie znaczników od zachowania.

Nawiasy wywołują funkcję natychmiast i generują jej wynik. Samo wpisanie nazwy przekazuje samą funkcję, a tego właśnie wymagają wywołania zwrotne. Dodanie nawiasów przez pomyłkę w setTimeout powoduje natychmiastowe uruchomienie kodu, a nie później.

Podsumuj ten post następująco: