KHUYẾN MÃI MÙA HÈ: GIẢM 20% TẤT CẢ DỊCH VỤ - HẠN CHÓT 30/6GIỚI THIỆU KHÁCH HÀNG MỚI: NHẬN 15% HOA HỒNG TRÊN HÓA ĐƠN ĐẦU TIÊNKHUYẾN MÃI MÙA HÈ: GIẢM 20% TẤT CẢ DỊCH VỤ - HẠN CHÓT 30/6GIỚI THIỆU KHÁCH HÀNG MỚI: NHẬN 15% HOA HỒNG TRÊN HÓA ĐƠN ĐẦU TIÊN
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
6.260
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

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: Claude Opus 4.7 Ra Mắt – Nâng Cấp Gì So Với Trước?

Claude Opus 4.7 Ra Mắt – Nâng Cấp Gì So Với Trước?

Claude Opus 4.7 đã chính thức ra mắt với nhiều cải tiến về hiệu suất và khả năng xử lý ngôn ngữ. Bài viết này tổng hợp những điểm mới đáng chú ý và so sánh với các mô hình AI hiện tại.

Hình ảnh đại diện của bài viết: Nén Video Online Miễn Phí (Nhanh, Không Mất Chất Lượng) – Top Tool 2026

Nén Video Online Miễn Phí (Nhanh, Không Mất Chất Lượng) – Top Tool 2026

Khám phá các công cụ nén video online hàng đầu năm 2026 giúp giảm dung lượng file nhanh chóng mà không làm mất chất lượng, tối ưu hóa quy trình làm việc và SEO website hiệu quả.

Hình ảnh đại diện của bài viết: Top 7 Công Cụ Nén File PPTX Trực Tuyến Tốt Nhất 2026

Top 7 Công Cụ Nén File PPTX Trực Tuyến Tốt Nhất 2026

Khám phá giải pháp tối ưu hóa slide chuyên nghiệp năm 2026, giúp tệp nhẹ hơn đến 90% mà vẫn giữ nguyên độ sắc nét, hiệu ứng và tích hợp công nghệ AI mới nhất.

Hình ảnh đại diện của bài viết: 5 Năm Làm Web: 3 Xu Hướng Tôi Đã Sai Và 2 Điều Luôn Đúng

5 Năm Làm Web: 3 Xu Hướng Tôi Đã Sai Và 2 Điều Luôn Đúng

Sau 5 năm làm việc trong lĩnh vực thiết kế website, tôi đã thấy nhiều xu hướng thay đổi. Một số điều tôi từng tin là đúng, nhưng thực tế lại hoàn toàn khác. Đây là 3 xu hướng tôi đã hiểu sai và 2 điều luôn đúng khi xây dựng website.

Hình ảnh đại diện của bài viết: Everything Claude Code: Hệ sinh thái tối ưu hóa hiệu suất cho AI Agents

Everything Claude Code: Hệ sinh thái tối ưu hóa hiệu suất cho AI Agents

Everything Claude Code (ECC) đại diện cho một phương pháp luận mới trong lập trình AI, cung cấp hệ thống tác nhân phụ chuyên biệt, kỹ năng workflow và cơ chế tự học để nâng cao năng suất.

Hình ảnh đại diện của bài viết: Paperclip AI Là Gì? Nền Tảng AI Company Tự Trị 2026

Paperclip AI Là Gì? Nền Tảng AI Company Tự Trị 2026

Sự xuất hiện của Paperclip đánh dấu bước ngoặt từ các công cụ AI hỗ trợ đơn lẻ sang các tổ chức tự trị hoàn chỉnh. Cùng Tấn Phát Digital phân tích hệ điều hành mới dành cho kỷ nguyên doanh nghiệp không nhân sự.

Hình ảnh đại diện của bài viết: Xu Hướng Giá RAM và CPU 2026: Tác Động Từ Làn Sóng AI Toàn Cầu – Tấn Phát Digital

Xu Hướng Giá RAM và CPU 2026: Tác Động Từ Làn Sóng AI Toàn Cầu – Tấn Phát Digital

Năm 2026, thị trường công nghệ thiết lập mặt bằng giá mới. Cơn khát bộ nhớ từ các trung tâm dữ liệu AI đã đẩy giá linh kiện tiêu dùng lên mức kỷ lục, buộc người dùng và doanh nghiệp phải thay đổi thói quen mua sắm để tối ưu chi phí.

Hình ảnh đại diện của bài viết: Hướng dẫn tích hợp gửi Gmail Vào Website 2026 | Tấn Phát Digital

Hướng dẫn tích hợp gửi Gmail Vào Website 2026 | Tấn Phát Digital

Cẩm nang kỹ thuật toàn diện về tích hợp Gmail vào website năm 2026, giúp nhà phát triển làm chủ các giao thức xác thực hiện đại và tối ưu hóa hiệu suất truyền tải.

Bài cùng chuyên mục

Bài trụ cột của chủ đề

Hình ảnh đại diện của bài viết: Hướng Dẫn Chọn Hosting & Domain Chuyên Nghiệp Cho Website Doanh Nghiệp Nhỏ
Bài trụ cột

Hướng Dẫn Chọn Hosting & Domain Chuyên Nghiệp Cho Website Doanh Nghiệp Nhỏ

Khám phá lộ trình xây dựng hạ tầng kỹ thuật vững chắc cho website doanh nghiệp với các tư vấn chuyên môn về tên miền quốc gia, công nghệ hosting hiện đại

Bài mới nhất cùng chuyên mục

Zalo
Facebook
Tấn Phát Digital
Zalo
Facebook