ใช้ return
เพื่อระบุค่าที่ฟังก์ชันควรสร้างเป็นค่าสุดท้าย
ผลลัพธ์ เมื่อล่ามเข้าถึงคำสั่ง return
ฟังก์ชันที่
จะมีคำสั่งนั้นสิ้นสุดทันที และค่าที่ระบุจะถูกส่งคืนไปยัง
บริบทที่มีการเรียกใช้ฟังก์ชัน
const myFunction = function() {
return 2 + 2;
}
myFunction();
> 4
ฟังก์ชันที่แสดงผลค่านั้นสามารถถือได้อย่างมีประสิทธิภาพว่าเป็นข้อมูลที่ฟังก์ชันนั้น มี ซึ่งคล้ายกับตัวแปรดังนี้
const myFunction = function() {
return 2 + 2;
}
myFunction() + myFunction();
> 8
คำสั่ง return
ที่ไม่มีนิพจน์จะทำให้ฟังก์ชันนั้นสิ้นสุดลงและส่งกลับ
undefined
:
const myFunction = function() {
return;
}
myFunction();
> undefined
เนื่องจากคีย์เวิร์ด return
ส่งสัญญาณถึงจุดสิ้นสุดของฟังก์ชัน โค้ดใดๆ ที่
ติดตาม return
ที่พบจะไม่ดำเนินการ:
const myFunction = function() {
return true;
console.log( "This is a string." );
}
myFunction();
> true
นอกจากนี้ โค้ดที่อยู่หลังคำสั่ง return
ที่พบอาจทำให้เกิด
คำเตือน (แต่ไม่ใช่ข้อผิดพลาด) ในบางเบราว์เซอร์ คอนโซลการพัฒนา:
const myFunction = function() {
return true;
console.log( "This is a string." );
}
> unreachable code after return statement
myFunction();
> true
เช่นเดียวกัน การตั้งค่านี้มีผลกับคำสั่ง return
ที่พบระหว่าง
จะดำเนินการกับฟังก์ชัน ไม่ใช่โค้ดที่อยู่หลังคำสั่ง return
ตามลำดับ
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."
"ไฟฟ้าลัดวงจร" ฟังก์ชันที่ใช้ return
ในช่วงต้นจะช่วยให้สั้นกระชับมากขึ้น
มากกว่าคำสั่ง return
เดี่ยวๆ ที่ส่วนท้ายของฟังก์ชัน ตัวอย่างเช่น พารามิเตอร์
ฟังก์ชันต่อไปนี้จะกำหนดว่าค่าที่ส่งผ่านเป็นสตริงที่มี
อักขระขึ้นไป หากค่าที่ส่งให้ไม่ใช่สัญพจน์สตริง รหัสที่
นับจำนวนอักขระที่ไม่จำเป็น และฟังก์ชันสามารถแสดงผล 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
นิพจน์ฟังก์ชันลูกศร
ไม่ซ้ำกันตรงที่คีย์เวิร์ด return
บอกเป็นนัยเมื่อเนื้อหาฟังก์ชันลูกศร
มีนิพจน์เดียวและไม่มีไวยากรณ์บล็อก:
const myFunction = () => 2 + 2;
myFunction();
> 4
หากคุณใช้ไวยากรณ์บล็อกเพื่อกำหนดเนื้อหาของฟังก์ชันลูกศร ก็จะเป็น return
ที่อาจไม่เหมาะสม
แม้ว่าเนื้อหาของฟังก์ชันจะมีเพียงนิพจน์เดียวก็ตาม
const myFunction = () => { 2 + 2 };
myFunction();
> undefined
const myFunction = () => { return 2 + 2 };
myFunction();
> 4
ตรวจสอบความเข้าใจ
return
ใช้ทำอะไร