Interview practice

Luyện câu hỏi trước khi gặp mentor

Question bank

Ôn tập phỏng vấn

Chọn nhóm câu hỏi, tự trả lời, mở đáp án mẫu và dùng checklist để đánh giá độ đầy đủ.

15

Câu hỏi trọng tâm

Cấu hình lộ trình phỏng vấn

Chọn role, kỹ năng bắt buộc và trình độ. Hệ thống sẽ lọc ra bộ câu hỏi kèm đáp án mẫu để ôn tập ngay.

Chọn role

Kỹ năng bắt buộc

Chọn trình độ

Plan đang chọn

Role: Frontend React Developer

Trình độ: Tất cả

Kỹ năng: JavaScript, React, Next.js, Security, Behavioral

10

câu hỏi phù hợp

0%

0/10

Tiến độ lưu local trên trình duyệt.

01JavaScriptCơ bản
Event loop xử lý Promise và setTimeout khác nhau như thế nào?

Prompt luyện tập

Viết ví dụ console.log có Promise và setTimeout rồi dự đoán thứ tự chạy.

Câu trả lời mẫu

Promise callback đi vào microtask queue, còn setTimeout đi vào macrotask queue. Sau khi call stack rỗng, event loop ưu tiên chạy toàn bộ microtask trước rồi mới đến macrotask.

Checklist cần có

  • Nêu call stack
  • Phân biệt microtask/macrotask
  • Có ví dụ thứ tự log
02JavaScriptCơ bản
Closure là gì và dùng khi nào trong dự án frontend?

Prompt luyện tập

Đưa ví dụ function tạo counter hoặc debounce và giải thích biến nào được giữ lại.

Câu trả lời mẫu

Closure xảy ra khi một function ghi nhớ lexical scope nơi nó được tạo ra, kể cả sau khi scope bên ngoài đã chạy xong. Nó hữu ích cho debounce, memoization, factory function và giữ state private.

Checklist cần có

  • Nêu lexical scope
  • Có ví dụ state private
  • Nói được rủi ro giữ reference quá lâu
03JavaScriptTrung cấp
Bạn xử lý lỗi async/await như thế nào để không nuốt lỗi?

Prompt luyện tập

Trả lời trong bối cảnh gọi API và cập nhật UI loading/error.

Câu trả lời mẫu

Dùng try/catch quanh await, phân biệt lỗi network, lỗi business và lỗi validation. Ở tầng UI cần set loading trong finally, hiển thị thông báo rõ, và log lỗi đủ ngữ cảnh ở tầng phù hợp.

Checklist cần có

  • Có try/catch/finally
  • Phân loại lỗi
  • Không expose lỗi nhạy cảm
04ReactTrung cấp
Khi nào một React component render lại và bạn tối ưu ra sao?

Prompt luyện tập

Trả lời theo format: nguyên nhân render, cách đo, cách tối ưu, tradeoff.

Câu trả lời mẫu

Component render lại khi state, props hoặc context liên quan thay đổi. Tối ưu bằng cách giữ state đúng phạm vi, tách component, memo hóa tính toán đắt và tránh tạo object/function mới không cần thiết.

Checklist cần có

  • Nói rõ state/props/context
  • Không lạm dụng memo
  • Ưu tiên thiết kế state tốt
05ReactCơ bản
Bạn đặt state ở đâu trong một màn hình có nhiều component con?

Prompt luyện tập

Dùng ví dụ filter danh sách khóa học và card con.

Câu trả lời mẫu

State nên đặt ở component thấp nhất nhưng vẫn bao phủ các nơi cần đọc hoặc cập nhật. Nếu chỉ một input và một list dùng filter, đặt state ở parent gần nhất. Tránh đưa state lên global khi chưa cần.

Checklist cần có

  • Nói lowest common ancestor
  • Tránh global state sớm
  • Có ví dụ props flow
06ReactTrung cấp
Trong Next.js, khi nào dùng Server Component và khi nào dùng Client Component?

Prompt luyện tập

Trả lời theo dữ liệu, tương tác, bundle size và bảo mật.

Câu trả lời mẫu

Server Component phù hợp cho đọc dữ liệu, render nội dung tĩnh hoặc bảo mật token server. Client Component cần cho state, effect, event handler và API browser. Tách đúng giúp giảm JavaScript và giữ logic nhạy cảm ở server.

Checklist cần có

  • Nêu event handler cần client
  • Nêu dữ liệu server
  • Nêu bundle size
07Next.jsTrung cấp
Server Action khác API route ở điểm nào và cần kiểm tra gì bên trong?

Prompt luyện tập

Đặt trong bối cảnh form admin tạo lesson.

Câu trả lời mẫu

Server Action là function server có thể gọi trực tiếp từ form hoặc client, phù hợp mutation gắn với UI. Dù vậy vẫn phải validate input, kiểm tra session/role và revalidate path sau khi ghi dữ liệu.

Checklist cần có

  • Validate input
  • Check auth/role
  • Revalidate/redirect rõ ràng
08Next.jsNâng cao
Bạn giải thích caching/revalidation trong Next.js như thế nào?

Prompt luyện tập

Nói cách dữ liệu khóa học thay đổi sau khi admin cập nhật.

Câu trả lời mẫu

Next.js có nhiều lớp cache cho render và fetch. Khi dữ liệu thay đổi qua mutation, cần revalidatePath hoặc revalidateTag để route liên quan lấy dữ liệu mới. Dữ liệu theo user thường nên dynamic hoặc đọc ngoài cache public.

Checklist cần có

  • Nêu revalidatePath/tag
  • Phân biệt public/user data
  • Có ví dụ admin update
09SecurityTrung cấp
XSS là gì và bạn giảm rủi ro trong app học tập ra sao?

Prompt luyện tập

Nêu cả nội dung markdown, video embed và admin content.

Câu trả lời mẫu

XSS là khi attacker chèn script chạy trong browser người dùng. Giảm rủi ro bằng escape output mặc định của React, sanitize HTML nếu render markdown, validate URL embed YouTube và không dùng dangerouslySetInnerHTML khi chưa kiểm soát.

Checklist cần có

  • Nêu escape/sanitize
  • Nêu validate URL
  • Nêu tránh dangerouslySetInnerHTML
10BehavioralCơ bản
Kể về lần bạn nhận feedback code khó nghe và xử lý ra sao?

Prompt luyện tập

Trả lời theo STAR: Situation, Task, Action, Result.

Câu trả lời mẫu

Một câu trả lời tốt nêu bối cảnh cụ thể, phản ứng bình tĩnh, cách bạn xác minh vấn đề, thay đổi code/process và kết quả sau đó. Tránh đổ lỗi, tập trung vào học hỏi và tiêu chuẩn kỹ thuật.

Checklist cần có

  • Có STAR
  • Không đổ lỗi
  • Có kết quả cụ thể