Gunakan return
untuk menentukan nilai yang akan dihasilkan oleh fungsi sebagai hasil akhir. Saat penafsir mencapai pernyataan return
, fungsi yang berisi pernyataan tersebut akan segera berakhir, dan nilai yang ditentukan akan ditampilkan ke konteks tempat fungsi dipanggil:
const myFunction = function() {
return 2 + 2;
}
myFunction();
> 4
Fungsi yang menampilkan nilai dapat diperlakukan secara efektif sebagai data yang ada 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, kode apa pun yang mengikuti return
yang ditemukan tidak akan dieksekusi:
const myFunction = function() {
return true;
console.log( "This is a string." );
}
myFunction();
> true
Selain itu, kode setelah pernyataan return
yang ditemukan dapat mengakibatkan 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 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."
"Kabel pendek" fungsi yang menggunakan return
awal dapat menghasilkan kode yang lebih ringkas daripada pernyataan return
tunggal 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 tersebut 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
bersifat unik karena kata kunci return
tersirat saat isi fungsi panah
berisi satu ekspresi 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
Untuk apa return
digunakan?