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ì?