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
returntrongif/else,for,whileblock 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) vsconst fn = () => { "x" }(sai - thiếu return). - Copy-paste code từ function ra ngoài quên bỏ
return.
Cách sửa
- Bọc code trong một function (regular, arrow, IIFE).
- Nếu muốn trả về giá trị từ script module, dùng
export default(ES Modules). - 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.