Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> JavaScript

Công dụng của Return Statement trong Function JavaScript


Câu lệnh return trong JavaScript chỉ định giá trị muốn trả về. Bên trong function, giá trị được trả về cho caller (người gọi).

Ví dụ

<html>
  <body>
    <script>
      function multiply(num1, num2) {
        return num1 * num2;
      }
      var result = multiply(5, 10);
      document.write("Multiplication: " + result); // 50
    </script>
  </body>
</html>

Đặc điểm quan trọng

  • return kết thúc function ngay lập tức - code sau không chạy.
  • Nếu không có return hoặc return; không giá trị → trả về undefined.
  • Constructor (new Fn()): return object → trả object đó; return primitive → bỏ qua, trả this.
  • return chỉ hợp lệ bên trong function (global scope → SyntaxError).

Các pattern phổ biến

// 1. Early return (guard clause) - giảm nesting
function process(user) {
  if (!user) return null;
  if (!user.active) return null;
  // main logic...
  return user.data;
}

// 2. Return object literal (cần wrap () cho arrow)
const createUser = (name, age) => ({ name, age, id: Date.now() });

// 3. Implicit return arrow function (expression body)
const double = x => x * 2;

// 4. Return function (higher-order function)
function multiplier(factor) {
  return function(x) { return x * factor; };
}
const double = multiplier(2);
double(5); // 10

// 5. Return this (method chaining / fluent API)
class Builder {
  setName(name) { this.name = name; return this; }
  setAge(age) { this.age = age; return this; }
  build() { return new User(this); }
}
new Builder().setName("A").setAge(20).build();

Return trong Async Function

async function fetchData() {
  const res = await fetch('/api/data');
  return res.json(); // Trả về Promise resolve với data
}

// Caller
fetchData().then(data => console.log(data));

Lưu ý

  • Luôn return consistent type (tránh return string lúc, number lúc khác).
  • Void function (không return) nên không có return; cuối (redundant).
  • return trong finally block ghi đè return trong try/catch.