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

Nguyên nhân "Uncaught SyntaxError: Illegal return statement" trong JavaScript

Nếu gặp lỗi Uncaught SyntaxError: Illegal return statement trong console JavaScript, thường là do bạn vô tình đặt câu lệnh return (return) ngoài function.

JavaScript không cho phép return ở global scope hoặc block scope (if, for, while...) - chỉ hợp lệ bên trong function.

❌ Sai - Gây lỗi

// Lỗi: return ở global scope
return "David";

✅ Đúng - Hoạt động bình thường

// Đúng: return bên trong function
var myNameIs = function() {
  return "David";
};

Các trường hợp thường gặp lỗi này

  • Viết return ở top-level script (không trong function).
  • Viết return trong if/else, for, while block không bao bọc bởi function.
  • Arrow function implicit return nhưng viết sai cú pháp: const fn = () => { return "x" } (đúng) vs const fn = () => { "x" } (sai - thiếu return).
  • Copy-paste code từ function ra ngoài quên bỏ return.

Cách sửa

  1. Bọc code trong một function (regular, arrow, IIFE).
  2. Nếu muốn trả về giá trị từ script module, dùng export default (ES Modules).
  3. Nếu trong callback, đảm bảo callback là function.

Lưu ý

Lỗi này là SyntaxError (lỗi cú pháp) - bị catch tại compile time, trước khi code chạy. Khác với ReferenceError hoặc TypeError xảy ra runtime.