Gunakan return
untuk menentukan nilai yang harus dihasilkan fungsi sebagai hasil akhir. 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
Fungsi yang menampilkan nilai dapat diperlakukan secara efektif sebagai data yang dikandungnya, mirip dengan variabel:
const myFunction = function() {
return 2 + 2;
}
myFunction() + myFunction();
> 8
Pernyataan return
tanpa ekspresi akan 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
peringatan (tetapi bukan error) di beberapa konsol pengembangan browser:
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 string yang berisi lima
karakter atau lebih. Jika nilai yang diteruskan bukan literal string, kode yang
menghitung karakter tidak diperlukan, dan fungsi dapat segera menampilkan hasil
false
:
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 saat isi fungsi panah
berisi satu ekspresi dan tidak ada 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
Memeriksa pemahaman Anda
Untuk apa return
digunakan?