JavaÖrneklerle Fonksiyonları Tanımlama ve Çağırma Komut Dosyası

⚡ Akıllı Özet

JavaKomut dosyası fonksiyonları, yalnızca çağrıldıklarında çalışan yeniden kullanılabilir kod bloklarını gruplandırır ve bu kılavuz, bir komut dosyası fonksiyonunun nasıl tanımlanacağını, ona nasıl argümanlar geçirileceğini ve çağırana nasıl bir değer döndürüleceğini göstermektedir.

  • 🔘 Sözdizimi: Klasik fonksiyonların her biri, `function` anahtar kelimesi, bir isim, parantezler ve süslü parantezlerden oluşur.
  • ☑️ Aranıyor: Code Bir fonksiyonun içindeki kod, yalnızca fonksiyon adı parantez içinde çağrıldığında çalışır.
  • argümanlar: Parantez içine yerleştirilen değerler, çağıran taraftan fonksiyon gövdesine veri aktarır.
  • 🧪 Dönüş: `return` anahtar kelimesi, çağırana bir değer gönderir ve yürütmeyi o noktada durdurur.
  • Varyasyonlar: Bildirimler, ifadeler, ok fonksiyonları, IIFE'ler ve geri çağırma fonksiyonlarının her biri farklı bir duruma uygundur.
  • 📊 Dürbün: Fonksiyon bildirimleri yukarı taşınırken, fonksiyon ifadeleri ve ok fonksiyonları taşınmaz.

JavaKomut Dosyası Tanımlama ve Çağırma Fonksiyonları

İşlev Nedir? JavaSenaryo?

Fonksiyonlar, kodu tekrar kullanılabilir hale getirdikleri için herhangi bir programlama dilinde çok önemli ve kullanışlıdır. Bir fonksiyon, yalnızca çağrıldığında çalıştırılacak bir kod bloğudur. Birkaç satır kodunuzun birkaç kez kullanılması gerekiyorsa, tekrarlanan kod satırlarını içeren bir fonksiyon oluşturabilir ve ardından bu fonksiyonu istediğiniz yerde çağırabilirsiniz.

Süslü parantez içindeki hiçbir şey kendi başına çalışmaz. Tarayıcı, bloğu verdiğiniz ad altında saklar ve kod yalnızca bu adın ardından parantez yazıldığında çalışır, örneğin: myFunction()Dolayısıyla işlevler her şeyin merkezinde yer alır. JavaSenaryo program, senaryonun yaşayıp yaşamayacağı sayfa içinde veya harici bir dosyada.

Bir Fonksiyon Nasıl Oluşturulur JavaSenaryo

  1. Anahtar kelimeyi kullanın işlev ardından fonksiyonun adı gelir.
  2. Fonksiyon adından sonra parantezleri açıp kapatın.
  3. Parantezden sonra kaşlı ayraçları açıp kapatın.
  4. Kıvrımlı parantezler içinde kod satırlarınızı yazın.

Sözdizimi:

function functionname()
{

  lines of code to be executed

}

Aşağıdaki örnek tanımlar myFunction() ve ardından hemen bir sonraki satırda çağırıyor, böylece mesaj sayfa yüklenir yüklenmez görünüyor. Bunu kendiniz deneyin:

<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>

Bağımsız Değişkenlerle İşlev

Argüman içeren fonksiyonlar da oluşturabilirsiniz. Argümanlar parantez içinde belirtilmelidir.

Sözdizimi:

function functionname(arg1, arg2)

{

  lines of code to be executed

}

İşte countVowels() Ziyaretçinin istem alanına yazdığı adı alır, her karakteri tek tek inceler ve adın kaç sesli harf içerdiğini bildirir. Bunu kendiniz deneyin:

<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>

JavaKomut Dosyası Dönüş Değeri

Değer döndüren JS işlevleri de oluşturabilirsiniz. Fonksiyonun içinde anahtar kelimeyi kullanmanız gerekir. dönüş ardından döndürülecek değer gelir.

Sözdizimi:

function functionname(arg1, arg2)

{

  lines of code to be executed

  return val1;

}

Bu son örnekte de durum aynı. returnSum() Toplamı, onu çağıran satıra geri gönderir, böylece sonuç fonksiyonun içinde yazdırılmak yerine bir cümleye eklenebilir. Bunu kendiniz deneyin:

<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>

Fonksiyon Türleri JavaSenaryo

Yukarıdaki üç örnekte de klasik fonksiyon bildirimi kullanılmıştır, ancak modern yaklaşımlar da mevcuttur. JavaScript, birkaç farklı form daha sunmaktadır. Bunlar esas olarak motorun onları kaldırıp kaldırmadığı ve her birinin nasıl davrandığı bakımından farklılık gösterir. this Anahtar kelime.

İşlev türü Tipik sözdizimi Kullanıldığı zaman
fonksiyon bildirimi fonksiyon selamla() { } Adlandırılmış, yeniden kullanılabilir mantık; kapsamının en üstüne taşındı.
Fonksiyon ifadesi const greet = function () { }; Bir fonksiyonu değişkende saklamak; yukarı taşınmamış (hoisted)
Ok fonksiyonu (ES6) const greet = () => { }; Kısa geri çağırma işlevleri; bunu çevreleyen kapsamdan miras alır.
anonim işlev setTimeout(function () { }, 100); Tek seferlik mantık doğrudan başka bir fonksiyona aktarıldı.
IIFE (işlev () { })(); Hemen çalışır ve değişkenlerini gizli tutar.
Geri Arama öğeler.herbiri için(gösterilenöğe); Bir fonksiyona devredilen ve daha sonra çağrılan bir fonksiyon.

Yukarıdaki örneklerle ilgili not: tarihi örneklerin kullanımı var hem de document.write()Ve her ikisi de hala her tarayıcıda çalışıyor. Mevcut uygulama, değişkenleri şu şekilde tanımlıyor: let or const ve çıktıyı şu şekilde yazdırır: console.log() veya ayarlayarak textContent bir öğe üzerinde, çünkü document.write() Yüklenmesi tamamlanmış bir sayfayı siler. type="text/javascript" Bu özellik HTML5'te isteğe bağlıdır.

Fonksiyon Parametreleri, Argümanları ve Varsayılan Değerleri

Parametreler, tanımda listelenen yer tutucu adlardır, argümanlar ise fonksiyon çağrıldığında sağlanan gerçek değerlerdir. countVowels(name) yukarıda, name Parametre, komut istemine yazılan metin ise argümandır.

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

greet("Ann");
greet("Ann", "Welcome");
  • Karşılık gelen argümanı olmayan bir parametre şu hale gelir: undefined Varsayılan bir değer belirtilmediği sürece, greeting burada.
  • Ek argümanlar parametre listesi tarafından göz ardı edilir ancak yine de erişilebilir durumda kalır. arguments Ok fonksiyonu olmayan herhangi bir fonksiyonun içindeki nesne.
  • Bir dinlenme parametresi şu şekilde yazılır: ...values geriye kalan tüm argümanları gerçek bir bütün haline getiriyor. dizi.

Fonksiyon Kapsamı ve Kaldırma İşlemleri JavaSenaryo

Bir fonksiyonun yazıldığı yer, neleri görebileceğini ve ne zaman çağrılabileceğini belirler. Yeni başlayanların karşılaştığı neredeyse her sürprizi açıklayan iki kural vardır.

  • Kaldırma: Fonksiyon bildirimleri, komut dosyası çalıştırılmadan önce kapsamlarının en üstüne taşınır, böylece tanımlandıkları satırın üstünde çağrılabilirler. Fonksiyon ifadeleri ve ok fonksiyonları yukarı taşınmaz ve erken çağrıldıklarında hata verirler.
  • Dürbün: ile tanımlanan değişkenler var Bir fonksiyonun içindeki bilgiler, o fonksiyonun tamamında görünürken, let hem de const Bulundukları blokla sınırlıdırlar. Her fonksiyonun dışında tanımlanan her şey globaldir.

Ünlü sayacı bunu pratikte gösterir. count Değişken fonksiyonun dışında tanımlandığı için çağrılması zorlaşıyor. countVowels() Aynı sayfada ikinci kez tıklama, sıfırdan başlamak yerine önceki toplama eklemeye devam eder. Bildirimi fonksiyonun içine taşımak, her çağrıda sıfırlanmasını sağlar.

Bu puanlarping Kurallar sunucu tarafı koduna da yansır, bu nedenle fonksiyonlar yazılırken de aynı mantık geçerlidir. node.jsve işlevsel davranışın neden bu kadar sık ​​ortaya çıktığı JavaSenaryo tabanlı mülakat soruları.

SSS

Fonksiyon hala çalışıyor, ancak sonucu geri veriyor. undefinedBu çağrıyı bir değişkene atamak, onu saklar. undefinedBu nedenle, toplama örneğinde toplamı fonksiyon gövdesi içinde yazdırmak yerine return ifadesi kullanılmıştır.

Yapay zekâ asistanları, bir yorumdan fonksiyon gövdesi önerebilir, bilinmeyen bir geri çağırma fonksiyonunu satır satır açıklayabilir ve test girdileri önerebilir. Oluşturulan kod, sayfanın sağlamadığı bir değişkeni veya tarayıcı API'sini sessizce varsayabileceğinden, öneriyi her zaman çalıştırın.

Genellikle evet. GitHub Yardımcı Pilotu Bağlamdan ok sözdizimini ve yaygın geri çağırma kalıplarını tamamlar. Değerini kontrol edin. this Sonuç olarak, ok fonksiyonu bunu miras alırken klasik fonksiyon ifadesi almaz.

Bir closure, oluşturulduğunda referans verdiği dış değişkenlerle birlikte paketlenmiş bir fonksiyondur. İç fonksiyon, dış fonksiyon bittikten sonra bile bu değişkenleri okumaya devam eder; özel sayaçlar ve fabrika fonksiyonları bu şekilde oluşturulur.

Evet, buna özyineleme denir. Fonksiyon, zinciri durduran bir temel durum içermelidir, aksi takdirde çağrı yığını tükendiğinde tarayıcı bir aralık hatası verir. Özyineleme, ağaç gezintisi ve faktöriyel tarzı problemlere uygundur.

Asenkron bir fonksiyon her zaman bir promise döndürür. İçinde, `await` ifadesi, beklenen promise sonuçlanana kadar fonksiyonu duraklatır ve asenkron kodun yukarıdan aşağıya doğru okumasını sağlar. Fonksiyon beklerken sayfanın geri kalanı yanıt vermeye devam eder.

Olay dinleyicisiyle ilişkilendirin: düğmeyi seçin, ardından olay adını ve işlev referansını kullanarak addEventListener'ı çağırın. Eski satır içi onclick özniteliği de çalışır, ancak artık işaretlemeyi davranıştan ayırmak tercih edilir.

Parantezler, fonksiyonu hemen çağırır ve sonucunu üretir. Sadece ismini yazmak, fonksiyonun kendisini iletir; bu da geri çağırma fonksiyonlarının ihtiyacı olan şeydir. setTimeout içinde yanlışlıkla parantez eklemek, kodu daha sonra değil, hemen çalıştırır.

Bu yazıyı şu şekilde özetleyin: