Tan Phat Media

Top 30 Câu Hỏi Phỏng Vấn JavaScript & TypeScript 2026 – Thực Chiến Kèm Đáp Án Chi Tiết

12 tháng 2, 2026
1.031
Technology
Top 30 Câu Hỏi Phỏng Vấn JavaScript & TypeScript 2026 – Thực Chiến Kèm Đáp Án Chi Tiết - Tấn Phát Digital

Tổng hợp những câu hỏi phỏng vấn JavaScript và TypeScript mới nhất 2026 kèm đáp án chi tiết. Giúp Frontend Developer tự tin vượt qua vòng phỏng vấn kỹ thuật.

  1. Virtual DOM là gì? React sử dụng thuật toán gì để diff giữa các lần render?

  2. Khi gõ tìm kiếm nhanh gây ra kết quả trước sau lẫn lộn thì xử lý thế nào? (race condition)

  3. Làm sao cache kết quả tìm kiếm để không re-fetch?

  4. Sự khác nhau giữa TypeInterface

  5. Generic là gì?

  6. Các mapped types như Partial, Required,... hoạt động ra sao?

  7. Điểm hạn chế của enum trong TypeScript

  1. Event Loop hoạt động như thế nào? Microtask vs Macrotask?

  2. Closure là gì? Cho ví dụ thực tế nơi closure gây bug hoặc memory issue.

  3. this trong JavaScript hoạt động ra sao? Khác nhau giữa arrow function và function thường?

  4. Prototype và Prototype Chain là gì? JavaScript là prototype-based nghĩa là gì?

  5. Deep copy vs Shallow copy — khi nào gây bug production?

  6. Debounce vs Throttle — khác nhau và dùng trong trường hợp nào?

  7. Promise vs Async/Await — async/await có làm code synchronous không?

  8. Các cách handle error trong async code? (try/catch, .catch, global handler)

  1. unknown vs any — nên dùng cái nào và tại sao?

  2. Union vs Intersection types — khác nhau thế nào?

  3. never là gì? Khi nào TypeScript suy ra kiểu never?

  4. keyoftypeof dùng để làm gì?

  5. Type narrowing / type guards là gì? Ví dụ (in, typeof, instanceof).

Xem thêm: Những Câu Hỏi Phỏng Vấn Next.js 2026 Nâng Cao

Sau nhiều buổi phỏng vấn Frontend gần đây, mình nhận ra một sự thật rất rõ:

Framework có thể giúp bạn được gọi phỏng vấn.
Nhưng JavaScript và TypeScript mới là thứ quyết định bạn pass hay fail.

Rất nhiều developer học React, NextJS rất nhanh — nhưng lại thiếu nền tảng về cách JavaScript thực sự vận hành.

Và đó chính là thứ interviewer muốn kiểm tra.

Lưu ý: Đây không phải danh sách để học thuộc.
Các câu hỏi dưới đây thường được dùng để:

  • đo độ sâu kiến thức

  • đánh giá tư duy kỹ thuật

  • phân loại level developer

Nếu nắm vững phần này, bạn đã vượt qua phần lớn vòng technical.

1. Virtual DOM là gì? Diffing algorithm?

Virtual DOM là một bản sao nhẹ của DOM thật được lưu trong memory dưới dạng JavaScript object.

Cách React render:

  1. Tạo Virtual DOM mới

  2. So sánh với Virtual DOM cũ (diffing)

  3. Chỉ update phần thay đổi vào Real DOM

Thuật toán:

React dùng heuristic O(n) thay vì O(n³).

Hai giả định chính:

  • Element khác type → replace toàn bộ subtree

  • Dùng key để nhận diện phần tử trong list

2. Race condition khi search

Xảy ra khi request gửi trước nhưng response về sau.

Cách xử lý tốt nhất:

AbortController

const controller = new AbortController();
fetch(url, { signal: controller.signal });
controller.abort();

Track request id
Chỉ update UI nếu response là request mới nhất.

React Query / SWR
Thư viện này xử lý sẵn.

3. Cache kết quả tìm kiếm

Mục tiêu: tránh gọi API lại.

Cách phổ biến:

Map / Object

const cache = new Map();

if(cache.has(query)) return cache.get(query);

Thư viện: React Query, SWR → auto cache + revalidate.

Advanced:

  • LRU cache

  • TTL (time expiration)

4. Type vs Interface

Interface

  • Extend dễ

  • Declaration merging

  • Tốt cho object / class

Type

  • Union, intersection

  • Flexible hơn

5. Generic là gì?

Cho phép viết code tái sử dụng nhưng vẫn giữ type safety.

function identity<T>(value: T): T {
  return value;
}

Use case senior:

  • API response wrapper

  • Repository pattern

  • Custom hooks

Keyword nên nói:
reusable + type-safe

6. Mapped Types

Cho phép tạo type mới từ type cũ.

Ví dụ Partial:

type Partial<T> = {
  [P in keyof T]?: T[P];
};

Phổ biến:

  • Partial → optional

  • Required → bắt buộc

  • Readonly

  • Pick / Omit

Thể hiện bạn hiểu type transformation.

7. Hạn chế của enum

  • Tạo runtime object → tăng bundle

  • Khó tree-shaking

  • Không linh hoạt

Xu hướng hiện đại:

type Role = "admin" | "user";

Nhẹ hơn + an toàn hơn.

8. Event Loop

JS là single-threaded nhưng xử lý async nhờ event loop.

Flow:

  1. Call stack chạy sync

  2. Async → Web APIs

  3. Callback → Queue

  4. Event loop đẩy vào stack

Microtask ưu tiên hơn Macrotask:

Microtask:

  • Promise

  • queueMicrotask

Macrotask:

  • setTimeout

  • setInterval

Câu bẫy: Promise chạy trước setTimeout.

9. Closure

Function nhớ được scope bên ngoài ngay cả khi scope đã kết thúc.

function counter() {
  let count = 0;
  return () => ++count;
}

Gây bug khi:

  • Giữ reference lớn → memory leak

  • Loop với var

Fix bằng let.

10. this hoạt động thế nào?

Phụ thuộc cách function được gọi, không phải nơi nó được viết.

Rule nhanh:

  • Method → this = object

  • Arrow → không bind this

  • call/apply/bind → set thủ công

11. Prototype Chain

JS không phải class-based — mà là prototype-based.

Khi truy cập property:

  • Tìm trong object

  • Không có → lên prototype

  • Cho tới null

12. Deep vs Shallow copy

Shallow: copy reference nested object.

{...obj}

Deep:

structuredClone(obj)

13. Debounce vs Throttle

Debounce: chỉ chạy sau khi user ngừng gõ.

Throttle: giới hạn số lần chạy theo interval.

Search → debounce
Scroll → throttle

14. Promise vs Async/Await

Async/await chỉ là syntax sugar của Promise.

Không làm code synchronous — vẫn async.

Ưu điểm:

  • Dễ đọc

  • Try/catch

15. Handle error async

✔ try/catch
.catch()
✔ Global handler

16. unknown vs any

any: tắt type checking
unknown: phải check trước khi dùng.

Luôn prefer unknown.

17. Union vs Intersection

Union (|) → một trong các type
Intersection (&) → phải có tất cả

Intersection dễ tạo conflict.

18. never

Type của giá trị không bao giờ xảy ra.

Ví dụ:

  • Function throw error

  • Infinite loop

Dùng để exhaustive checking trong switch.

19. keyof & typeof

keyof: lấy key của object thành union type.

type Keys = keyof User;

typeof: lấy type từ biến.

Rất mạnh khi build reusable types.

20. Type Guards / Narrowing

Giúp TS hiểu type cụ thể hơn.

Ví dụ:

if(typeof value === "string") {
}

Hoặc:

  • in

  • instanceof

  • custom guard

Có một pattern rất rõ:

Nếu bạn trả lời sâu các chủ đề như Event Loop, Closure hoặc Generics, interviewer gần như sẽ tăng độ khó ngay lập tức — vì họ biết bạn không chỉ học thuộc.

Nếu Chỉ Có 3–5 Ngày Để Chuẩn Bị Phỏng Vấn

Hãy ưu tiên theo thứ tự:

Event Loop
Closure
this
Generics
unknown vs any

Master 5 chủ đề này, bạn đã vượt hơn phần lớn ứng viên.

Bài viết liên quan

Hình ảnh đại diện của bài viết: Augment Code là gì? Hướng dẫn AI lập trình 2025

Augment Code là gì? Hướng dẫn AI lập trình 2025

Augment Code là gì? Công cụ AI hỗ trợ lập trình giúp developer tăng tốc độ code, giảm lỗi và tối ưu dự án. Phân tích chi tiết bởi Tấn Phát Digital.

Hình ảnh đại diện của bài viết: Cách Lấy Email Tên Miền Miễn Phí (2025) | Hướng Dẫn A–Z

Cách Lấy Email Tên Miền Miễn Phí (2025) | Hướng Dẫn A–Z

Hướng dẫn 2025 lấy email tên miền miễn phí: Zoho Mail (inbox thật), Cloudflare Email Routing/ImprovMX (chuyển tiếp), kèm SPF/DKIM/DMARC để tăng tỉ lệ vào inbox. Triển khai đồng bộ thương hiệu với Tấn Phát Digital.

Hình ảnh đại diện của bài viết: Cách Tối Ưu Hóa Hình Ảnh Cho SEO – Tối Ưu Tốc Độ, Nâng Thứ Hạng Google

Cách Tối Ưu Hóa Hình Ảnh Cho SEO – Tối Ưu Tốc Độ, Nâng Thứ Hạng Google

Hướng dẫn chi tiết cách tối ưu hóa hình ảnh cho SEO: Checklist 7 kỹ thuật hiệu quả nhất giúp website tải nhanh, tăng thứ hạng Google.

Hình ảnh đại diện của bài viết: CDN Là Gì? Tại Sao Website Hiện Đại Cần Dùng CDN

CDN Là Gì? Tại Sao Website Hiện Đại Cần Dùng CDN

Tìm hiểu CDN là gì và tại sao website hiện đại cần dùng CDN. Giải pháp giúp tăng tốc độ tải trang, cải thiện SEO và bảo mật hiệu quả cho doanh nghiệp nhỏ.

Hình ảnh đại diện của bài viết: Chi Phí Duy Trì Website Hàng Năm: Hosting, Tên Miền, Bảo Trì & Hơn Thế Nữa

Chi Phí Duy Trì Website Hàng Năm: Hosting, Tên Miền, Bảo Trì & Hơn Thế Nữa

Tìm hiểu chi tiết về các khoản chi phí duy trì website hàng năm, bao gồm hosting, tên miền, bảo trì, bảo mật, và nhiều hơn nữa. Khám phá cách Tấn Phát Digital có thể giúp bạn quản lý và tối ưu hóa website một cách hiệu quả.

Hình ảnh đại diện của bài viết: Domain Là Gì? Cách Chọn Tên Miền Đẹp, Chuẩn SEO

Domain Là Gì? Cách Chọn Tên Miền Đẹp, Chuẩn SEO

Tên miền không chỉ là địa chỉ website mà còn là tài sản chiến lược quan trọng nhất trong việc định hình danh tính số. Tìm hiểu ngay cách chọn domain tối ưu cùng chuyên gia Tấn Phát Digital.

Hình ảnh đại diện của bài viết: Google Gemini 3.1 Pro Ra Mắt: Đột Phá Tư Duy Logic & Ứng Dụng Thực Tế

Google Gemini 3.1 Pro Ra Mắt: Đột Phá Tư Duy Logic & Ứng Dụng Thực Tế

Bước nhảy vọt từ Gemini 3 Deep Think đến 3.1 Pro: Khi trí tuệ AI không chỉ dừng lại ở câu trả lời mà trở thành giải pháp thực thi phức tạp.

Hình ảnh đại diện của bài viết: Hướng Dẫn Tạo & Gửi Sơ Đồ Website XML Lên Google Search Console

Hướng Dẫn Tạo & Gửi Sơ Đồ Website XML Lên Google Search Console

Hướng dẫn tạo sơ đồ website XML và gửi lên Google Search Console trong vài bước. Tìm hiểu vai trò của Sitemap trong SEO và cách Tấn Phát Digital hỗ trợ bạn có website chuẩn SEO ngay từ đầu.

Zalo
Facebook
Tấn Phát Digital
Zalo
Facebook