Phỏng vấn
Drama Công TyChính thức6 giờ trước

Câu hỏi phỏng vấn Frontend và React: những chủ đề gần như chắc chắn bị hỏi

Phỏng vấn frontend thường đi từ JavaScript nền tảng, sang React, rồi tới hiệu năng và trình duyệt. Dưới đây là các chủ đề lặp lại nhiều nhất và ý nên chạm tới.

JavaScript

Event loop chạy thế nào? Call stack, hàng đợi task (setTimeout, sự kiện) và microtask (Promise). Câu kinh điển: đoán thứ tự in ra của một đoạn code có setTimeout(…, 0) và Promise.resolve().then(…). Microtask luôn chạy hết trước task tiếp theo.

Closure là gì, dùng vào việc gì? Hàm nhớ biến của phạm vi nơi nó được tạo. Ví dụ thực tế: debounce, hoặc lỗi kinh điển về biến trong vòng lặp với var.

== khác ===, null khác undefined, so sánh object. Câu ngắn nhưng hay dùng để khởi động.

React

Vì sao component render lại? State hoặc props đổi, hoặc component cha render lại. Điểm cộng: memo, useMemo, useCallback chỉ có ích khi phép so sánh rẻ hơn việc render, và đo trước bằng React DevTools Profiler rồi mới tối ưu.

useEffect dùng khi nào và khi nào không nên? Dùng để đồng bộ với hệ thống bên ngoài (subscription, DOM, timer). Không cần effect để tính dữ liệu suy ra từ state: tính thẳng khi render. Nói được về hàm cleanup và mảng phụ thuộc.

key trong danh sách để làm gì? Giúp React nhận ra phần tử nào là phần tử nào giữa các lần render. Dùng index làm key khi danh sách bị sắp xếp lại hay xoá giữa chừng sẽ làm lẫn state của các ô input.

Quản lý state ở đâu? State cục bộ, nâng state lên cha, context, thư viện ngoài, và dữ liệu từ server thì nên để thư viện fetch/cache lo thay vì tự nhét vào store toàn cục.

Server rendering và Server Components. Khác nhau giữa render ở server và ở trình duyệt, hydration, và vì sao lỗi "hydration mismatch" xảy ra (ví dụ in ra Date.now() khi render).

Hiệu năng và trình duyệt

  • Core Web Vitals: LCP, INP, CLS là gì, và mỗi chỉ số hay hỏng vì đâu (ảnh lớn không đặt kích thước, script chặn luồng chính, font nhảy layout).
  • Tải ít hơn: chia nhỏ bundle, lazy load, ảnh đúng kích thước.
  • Bảo mật cơ bản: XSS và vì sao không nên chèn HTML thô, CORS, cookie HttpOnly và SameSite.

Vòng live coding hay gặp

  • Viết debounce hoặc throttle.
  • Làm ô tìm kiếm gợi ý: gọi API khi gõ, huỷ request cũ, xử lý trạng thái đang tải và lỗi.
  • Dựng một danh sách có phân trang hoặc cuộn vô hạn.

Hãy nói to suy nghĩ khi code: người phỏng vấn chấm cách bạn chia bài toán nhiều hơn là code chạy ngay lần đầu.

Vòng frontend gần nhất của bạn hỏi gì? Kể ở dưới để người sau chuẩn bị nhé.

Bình luận:0
Bình luận:0

0 bình luận

Bạn đang gửi với tư cách khách. Gửi là đồng ý Điều khoản và Quy tắc cộng đồng. Đăng nhập để dùng tên của bạn.

Chưa có bình luận nào. Bạn mở lời trước nhé.