Từ khoá trả về

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

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

myFunction();
> 4

Một hàm trả về một giá trị có thể được xử lý hiệu quả 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 việc 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 phải có thể dẫn đến cảnh báo (chứ không phải lỗi) trong bảng điều khiển phát triển của một số 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 áp dụng cho bất kỳ mã nào theo tuần tự 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."

Tính năng "Ngắn mạch" trong một hàm sử dụng return đời đầu 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 đây xác định liệu giá trị đã truyền có phải là một chuỗi chứa 5 ký tự trở lên hay không. Nếu giá trị đã truyền không phải là giá trị cố định kiểu chuỗi, 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 riêng biệ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 và không có cú pháp khối:

const myFunction = () => 2 + 2;

myFunction();
> 4

Nếu sử dụng cú pháp khối để xác định nội dung hàm mũi tên, bạn phải có return rõ ràng, ngay cả khi 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ả mã về đầu hàm.