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 tiếp cận câu lệnh return, hàm mà chứa câu lệnh đó ngay lập tức kết thúc và giá trị được chỉ định được trả về ngữ cảnh nơi hàm được gọi:

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

myFunction();
> 4

Hàm trả về một giá trị có thể được xử lý hiệu quả như là dữ liệu mà hàm đó trả về 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 việc kết thúc một hàm, nên mọi mã sau khi gặp phải một return không được thực thi:

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

myFunction();
> true

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

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

myFunction();
> true

Xin nhắc lại, thao tác này chỉ áp dụng cho câu lệnh return gặp phải trong thực thi hàm, không phải bất kỳ mã nào tuần tự tuân theo câu lệnh 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."

"Ngắn mạch" một hàm sử dụng return ở đầu có thể giúp bạn rút gọn hơn so với một câu lệnh return ở 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 giá trị cố định kiểu chuỗi, thì mã đếm ký tự là không cần thiết và hàm có thể trả về false kết quả 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 có duy nhất ở chỗ từ khoá return được ngụ ý khi 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 kiến thức

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.