Gunakan return
untuk menentukan nilai yang harus dihasilkan fungsi sebagai final
hasil pengujian tersebut. Saat penafsir mencapai pernyataan return
, fungsi yang
berisi pernyataan itu segera berakhir, dan nilai yang ditentukan dikembalikan ke
konteks pemanggilan fungsi:
const myFunction = function() {
return 2 + 2;
}
myFunction();
> 4
Sebuah fungsi yang mengembalikan nilai dapat diperlakukan secara efektif sebagai data yang di dalamnya, mirip dengan variabel:
const myFunction = function() {
return 2 + 2;
}
myFunction() + myFunction();
> 8
Pernyataan return
tanpa ekspresi mengakhiri fungsi dan menampilkan
undefined
:
const myFunction = function() {
return;
}
myFunction();
> undefined
Karena kata kunci return
menandakan akhir fungsi, setiap kode yang
mengikuti return
yang ditemui, tidak dieksekusi:
const myFunction = function() {
return true;
console.log( "This is a string." );
}
myFunction();
> true
Selain itu, kode yang mengikuti pernyataan return
yang ditemukan dapat menyebabkan error
peringatan (tetapi bukan kesalahan) di beberapa browser konsol pengembangan:
const myFunction = function() {
return true;
console.log( "This is a string." );
}
> unreachable code after return statement
myFunction();
> true
Sekali lagi, ini hanya berlaku untuk pernyataan return
yang ditemukan selama
eksekusi fungsi, bukan kode apa pun yang mengikuti pernyataan return
secara berurutan:
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."
"Singkatan singkat" fungsi yang menggunakan return
awal
dapat memberikan hasil yang lebih ringkas
kode dari satu pernyataan return
di akhir fungsi. Misalnya,
fungsi berikut menentukan apakah nilai yang diteruskan adalah {i>string<i} yang berisi lima
karakter atau lebih. Jika nilai yang diteruskan bukan literal string, kode yang
menghitung karakter yang tidak diperlukan, dan fungsi dapat menampilkan false
segera hasil:
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
Ekspresi fungsi panah
unik karena kata kunci return
tersirat jika isi fungsi panah
berisi ekspresi tunggal dan tanpa sintaksis blok:
const myFunction = () => 2 + 2;
myFunction();
> 4
Jika Anda menggunakan sintaksis blok untuk menentukan isi fungsi panah, return
eksplisit
diperlukan, meskipun isi fungsi hanya berisi satu ekspresi:
const myFunction = () => { 2 + 2 };
myFunction();
> undefined
const myFunction = () => { return 2 + 2 };
myFunction();
> 4
Menguji pemahaman Anda
return
digunakan untuk apa?