Từ khoá trả về

Sử dụng return để chỉ định giá trị mà hàm sẽ tạo ra làm giá trị cuối cùng kết quả. Khi trình thông dịch gặp câu lệnh return, hàm chứa câu lệnh đó sẽ kết thúc ngay lập tức và giá trị được chỉ định sẽ được trả về ngữ cảnh nơi hàm được gọi:

const myFunction = function() {
   return 2 + 2;
}

myFunction();
> 4

Bạn có thể coi một hàm trả về giá trị là dữ liệu mà hàm đó chứa, tương tự như một biến:

const myFunction = function() {
   return 2 + 2;
}

myFunction() + myFunction();
> 8

Câu lệnh return không có biểu thức sẽ kết thúc hàm và trả về undefined:

const myFunction = function() {
   return;
}

myFunction();
> undefined

Vì từ khoá return báo hiệu kết thúc một hàm, nên mọi mã theo sau return đã gặp sẽ không được thực thi:

const myFunction = function() {
   return true;
   console.log( "This is a string." );
}

myFunction();
> true

Ngoài ra, mã theo sau câu lệnh return đã gặp có thể dẫn đến cảnh báo (nhưng không phải lỗi) trong một số bảng điều khiển phát triển của trình duyệt:

const myFunction = function() {
   return true;
   console.log( "This is a string." );
}
> unreachable code after return statement

myFunction();
> true

Xin nhắc lại, điều này chỉ áp dụng cho câu lệnh return gặp phải trong quá trình thực thi hàm, chứ không phải bất kỳ mã nào theo sau câu lệnh return theo tuần tự:

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."

Việc "đường ngắn" một hàm bằng cách sử dụng return sớm có thể cho phép mã ngắn gọn hơn so với một câu lệnh return duy nhất ở cuối hàm. Ví dụ: hàm sau xác định liệu giá trị được truyền có phải là một chuỗi chứa năm hoặc nhiều ký tự hơn. Nếu giá trị được truyền không phải là một chuỗi cố định, thì mã đếm các ký tự là không cần thiết và hàm có thể trả về kết quả false ngay lập tức:

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

Biểu thức hàm mũi tên là duy nhất ở chỗ từ khoá return được ngụ ý khi phần nội dung hàm mũi tên chứa một biểu thức duy nhất và không có cú pháp khối:

const myFunction = () => 2 + 2;

myFunction();
> 4

Nếu bạn sử dụng cú pháp khối để xác định nội dung hàm mũi tên, return rõ ràng là bắt buộc, ngay cả khi phần nội dung hàm chỉ chứa một biểu thức duy nhất:

const myFunction = () => { 2 + 2 };

myFunction();
> undefined
const myFunction = () => { return 2 + 2 };

myFunction();
> 4

Kiểm tra mức độ hiểu biết

return dùng để làm gì?

Chỉ định kết quả cuối cùng của một hàm.
Trả về mã bắt đầu hàm.