Fonksiyonun nihai olarak üretmesi gereken değeri belirtmek için return
kullanın
yardımcı olur. Yorumlayıcı bir return
ifadesine ulaştığında, bu ifadeyi içeren işlev hemen sona erer ve belirtilen değer, işlevin çağrıldığı bağlama döndürülür:
const myFunction = function() {
return 2 + 2;
}
myFunction();
> 4
Değer döndüren bir işlev, bir değişkene benzer şekilde, içerdiği veriler olarak etkili bir şekilde ele alınabilir:
const myFunction = function() {
return 2 + 2;
}
myFunction() + myFunction();
> 8
İfade içermeyen bir return
ifadesi işlevi sonlandırır ve undefined
değerini döndürür:
const myFunction = function() {
return;
}
myFunction();
> undefined
return
anahtar kelimesi bir işlevin sonunu belirttiğinden,
aşağıdaki komut return
yürütülmezse:
const myFunction = function() {
return true;
console.log( "This is a string." );
}
myFunction();
> true
Ayrıca, karşılaşılan bir return
ifadesini izleyen kod, bazı tarayıcıların geliştirme konsollarında uyarı (ancak hata değil) oluşturabilir:
const myFunction = function() {
return true;
console.log( "This is a string." );
}
> unreachable code after return statement
myFunction();
> true
Yine de bu durum yalnızca işlevin yürütülmesi sırasında karşılaşılan bir return
ifadesi için geçerlidir, return
ifadesini ardışık olarak izleyen kod için geçerli değildir:
const myFunction = function( myParameter ) {
if( myParameter === undefined ) {
return "This is the result.";
}
return "This is the alternate result.";
}
myFunction();
> "This is the result."
myFunction( true );
> "This is the alternate result."
"Kısa devre" erken return
kullanan bir fonksiyon daha kısa ve öz
, işlevin sonundaki tek bir return
ifadesinden daha yüksek bir kodla ifade edilir. Örneğin, aşağıdaki işlev, iletilen bir değerin beş veya daha fazla karakter içeren bir dize olup olmadığını belirler. İletilen değer bir dize sabit değeri değilse
karakterlerinin sayımı gereksizdir ve işlev, false
hatası döndürebilir.
hemen sonuç oluşturabilirsiniz:
function myFunction( myString ) {
if( typeof myString !== "string" ) {
return false;
}
if( myString.length >= 5 ) {
return true;
} else {
return false;
}
}
myFunction( 100 );
> false
myFunction( "St" );
> false
myFunction( "String." );
> true
Ok işlevi ifadeleri, ok işlevi gövdesi tek bir ifade içerdiğinde ve blok söz dizimi içermediğinde return
anahtar kelimesinin ima edilmesi açısından benzersizdir:
const myFunction = () => 2 + 2;
myFunction();
> 4
Ok işlev gövdesini tanımlamak için blok söz dizimi kullanırsanız açık bir return
öğesi gereklidir, ancak işlev gövdesi yalnızca tek bir ifade içerse bile gereklidir:
const myFunction = () => { 2 + 2 };
myFunction();
> undefined
const myFunction = () => { return 2 + 2 };
myFunction();
> 4
Öğrendiklerinizi test etme
return
ne için kullanılır?