คีย์เวิร์ดที่แสดงผล

ใช้ 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 ใช้ทำอะไร

การระบุผลลัพธ์สุดท้ายของฟังก์ชัน
แสดงโค้ดที่จุดเริ่มต้นของฟังก์ชัน