JavaScript Fonksiyon Tanımı
- Önceki Sayfa JS Nesne Atıfı
- Sonraki Sayfa JS Fonksiyon Parametreleri
JavaScript fonksiyonları function
kelimetanımlamatarafından tanımlanabilir.
fonksiyon kullanabilirsiniz声明veya fonksiyonİfade。
fonksiyon beyanı
Bu derste daha önce, aşağıdaki gramerle声明fonksiyon:
function fonksiyonAdı(parametreler) { Çalıştırılacak kod }
Tanesi tanımlanan fonksiyonlar doğrudan çalıştırılmaz. Onlar "daha sonra kullanılmak üzere saklanır" ve daha sonra, çağrıldıklarında çalıştırılır.
Örnek
function myFunction(a, b) { return a * b; }
noktalı virgül, çalışılabilir JavaScript ifadelerini ayırmak için kullanılır.
Fonksiyon声明çalışılabilir bir ifade değildir ve noktalı virgülle sonlandırılmak yaygın değildir.
fonksiyon ifadeleri
JavaScript fonksiyonlarıİfadetanımlanabilir.
Fonksiyon ifadeleri değişkende saklanabilir:
Örnek
var x = function (a, b) {return a * b};
Fonksiyon ifadesini değişkende sakladıktan sonra, bu değişken fonksiyon olarak kullanılabilir:
Örnek
var x = function (a, b) {return a * b}; var z = x(4, 3);
上面的函数实际上是一个Adlandırılmamış fonksiyon(没有名称的函数)。
Değişkende saklanan fonksiyonlar fonksiyon adına ihtiyaç duymazlar. Onlar her zaman değişken adı ile çağrılır.
Yukarıdaki fonksiyon noktalı virgülle sonlandırıldı çünkü o, bir çalışılabilir ifadenin bir parçasıdır.
Function() yapıcı fonksiyonu ile tanımlanır.
Önceki örneklerinde gördüğünüz gibi, JavaScript fonksiyonları function
kelime tanımları ile tanımlanabilir.
Fonksiyonlar, adlandırılmış Function()
的内建 JavaScript 函数构造器来定义。
Örnek
var myFunction = new Function("a", "b", "return a * b"); var x = myFunction(4, 3);
您实际上无需使用函数构造器。上面的例子这么写也是一样的:
Örnek
var myFunction = function (a, b) {return a * b}; var x = myFunction(4, 3);
大多数情况下,您可以避免在 JavaScript 中使用 new
关键词。
函数提升
在本教程中稍早前,您已经学到了“提升”(hoisting)。
Hoisting 是 JavaScript 将声明移动到当前作用域顶端的默认行为。
Hoisting 应用于变量声明和函数声明。
正因如此,JavaScript 函数能够在声明之前被调用:
myFunction(5); function myFunction(y) { return y * y; }
使用表达式定义的函数不会被提升。
自调用函数
函数表达式可以作为“自调用”。
自调用表达式是自动被调用(开始)的,在不进行调用的情况下。
函数表达式会自动执行,假如表达式后面跟着 ()
。
您无法对函数声明进行自调用。
您需要在函数周围添加括号,以指示它是一个函数表达式:
Örnek
(function () { var x = "Hello!!"; // 我会调用我自己 }();
上面的函数实际上是一个匿名的自调用函数(没有名称的函数)。
函数可用作值
JavaScript 函数可被用作值:
Örnek
function myFunction(a, b) { return a * b; } var x = myFunction(4, 3);
JavaScript 函数可用在表达式中:
Örnek
function myFunction(a, b) { return a * b; } var x = myFunction(4, 3) * 2;
函数是对象
JavaScript 中的 typeof
运算符会为函数返回 "function
"。
但是最好是把 JavaScript 函数描述为对象。
JavaScript 函数都有属性和方法。
arguments.length
会返回函数被调用时收到的参数数目:
Örnek
function myFunction(a, b) { return arguments.length; }
toString()
方法以字符串返回函数:
Örnek
function myFunction(a, b) { return a * b; } var txt = myFunction.toString();
Nesne özellikleri olarak tanımlanan fonksiyonlar, nesne yöntemleri olarak adlandırılır.
Yeni nesneler oluşturmak için tasarlanmış fonksiyonlar, nesne yapıcı fonksiyonları (nesne yapıcı) olarak adlandırılır.
Açılma Fonksiyonları
Açılma fonksiyonları, fonksiyon ifadelerini kısa bir dilbilgisi ile yazmayı sağlar.
function anahtar kelimesi, return anahtar kelimesi ve parantezler gerekmez.
Örnek
// ES5 var x = function(x, y) { return x * y; } // ES6 const x = (x, y) => x * y;
Açılma fonksiyonları kendi this'lerini içermemektedir. Bu nedenle, nesne yöntemleri olarak tanımlanmaz.
Açılma fonksiyonları yükseltilmemiştir. Kullanılmadan önce tanımlanmaları gerekmektedir.
const kullanmak var kullanmakten daha güvenlidir, çünkü fonksiyon ifadeleri her zaman sabit değerlerdir.
Eğer fonksiyon tek bir ifade ise, sadece return anahtar kelimesi ve parantezleri atlanabilir. Bu nedenle, onları tutmak iyi bir alışkanlık olabilir:
Örnek
const x = (x, y) => { return x * y };
IE11 veya daha eski sürümler açılma fonksiyonlarını desteklemez.
- Önceki Sayfa JS Nesne Atıfı
- Sonraki Sayfa JS Fonksiyon Parametreleri