Top 10 câu hỏi phỏng vấn JavaScript

Top 10 câu hỏi phỏng vấn JavaScript

Top 10 câu hỏi phỏng vấn JavaScript

Dưới đây là top 10 câu hỏi phỏng vấn JavaScript dựa trên tổng hợp các câu hỏi mà nhà tuyển dụng hay đặt ra cho ứng viên về chuyên môn. Tuy nhiên, bài viết chỉ mang tính chất tham khảo, tuỳ từng lĩnh vực, vị trí ứng tuyển sẽ có những câu hỏi khác nhau.

1. Sự khác biệt giữa == và ===?

Phân biệt toán tử == và === trong JavaScript

Trả lời: Sự khác biệt giữa ======= so sánh theo giá trị sau khi coercion=== so sánh theo giá trị và kiểu mà không bị coercion.

Coercion là gì? Coercion dịch từ anh ra việt nghĩa là sự ép buộc, bắt buộc làm gì đó.

Trong JavaScript, coercion (hay còn gọi là type conversion) được hiểu là việc biến đổi (convert) từ kiểu dữ liệu này sang kiểu dữ liệu khác trong quá trình thực hiện chương trình theo quy tắc sau:

  • Nếu một toán hạng là một chuỗi và một toán hạng khác là một số, chuỗi sẽ được chuyển đổi thành số
  • Nếu một toán hạng là Boolean và các toán hạng khác không phải là Boolean, Boolean sẽ được chuyển đổi thành số
  • Nếu so sánh một chuỗi hoặc số với một đối tượng, đối tượng sẽ được chuyển đổi thành kiểu nguyên thủy

Xem thêm:

2. Giá trị của this trong JavaScript?

Từ khoá this trong JavaScript

Trả lời: Về cơ bản, this đề cập đến giá trị của đối tượng hiện đang thực thi hoặc gọi hàm. Mình nói hiện tại là do giá trị của this thay đổi tùy thuộc vào ngữ cảnh mà chúng ta sử dụng nó và nơi chúng ta sử dụng nó.

Xem thêm: Từ khoá “this” trong JavaScript

3. IIFE là gì, công dụng của nó là gì?

Trả lời: IIFE là viết tắt của Immediately Invoked Function Expression, có nghĩa là khởi tạo một function và thực thi nó ngay lập tức.

4. Làm sao để tạo phương thức trên một instance của đối tượng Date trả về ngày hôm sau?

Tìm hiểu Date Object trong JavaScript

Trả lời: Ta sử dụng prototype cho đối đượng Date để ta có quyền truy cập vào giá trị hiện tại của instance như sau:

Date.prototype.nextDate = function() {
  const currentDate = this.getDate();
  return new Date(this.setDate(currentDate + 1))
}
const date = new Date();
console.log(date.getDate());
// 16
console.log(date.nextDate());
//Wed May 17 2021 20:25:38 GMT+0600 (Bangladesh Standard Time)Code language: JavaScript (javascript)

Xem thêm: Tìm hiểu Date Object trong JavaScript

5. Sự khác biệt giữa event.preventDefault() và event.stopPropagation()?

Trả lời: Phương thức event.preventDefault() ngăn chặn hành vi mặc định của một phần tử. Nếu được sử dụng trong một phần tử biểu mẫu, nó sẽ ngăn không cho nó gửi. Trong khi đó, phương thức event.stopPropagation() ngăn chặn sự lan truyền của một sự kiện hoặc dừng sự kiện xảy ra tới phần tử khác.

6. Sự khác biệt giữa Function.prototype.bind, Function.prototype.apply và Function.prototype.call?

Trả lời:

  • Bind được dùng để xác định tham số this cho một function
  • Call gọi một hàm với giá trị của this và các đối số riêng lẻ
  • Apply gọi một hàm với giá trị của this và các đối số được truyền vào dưới dạng mảng

Nhìn chung, hàm call và apply là gần giống nhau. Chúng đều gọi hàm trực tiếp. Chỉ khác ở cách truyền tham số vào (apply truyền vào một array chứa toàn bộ các tham số còn call truyền lần lượt từng tham số.)

Hàm bind thì hơi khác hơn một chút. Hàm này không gọi hàm trực tiếp mà nó sẽ trả về một hàm mới. Và bạn có thể sử dụng hàm số mới này sau. Về cách truyền tham số vào thì nó giống với hàm call.

7. Lập trình hàm là gì?

Trả lời: Functional programming là một dạng mô hình lập trình (FP – Gọi là lập trình hàm), cũng giống như lập trình tuần tự hay lập trình hướng đối tượng (OOP). Functional programming là một phương pháp lập trình dựa trên các hàm toán học (function), tránh việc thay đổi giá trị của dữ liệu. Nó có nhiều lợi ích như : các khối xử lý độc lập dễ tái sử dụng, thuận lợi cho việc thay đổi logic hoặc tìm lỗi chương trình.

8. Hàm callback là gì?

Tìm hiểu về Callback Function trong JavaScript

Trả lời: Callback là một hàm sẽ được thực hiện sau khi một hàm khác đã thực hiện xong. Tức là ta truyền một đoạn code (Hàm A) này vào một đoạn code khác (Hàm B). Tới một thời điểm nào đó, Hàm A sẽ được hàm B gọi lại (callback).

Xem thêm: Tìm hiểu về Callback Function trong JavaScript

9. Async/Await là gì?

Tìm hiểu về Asynchronous trong JavaScript

Trả lời: Async được dùng để khai báo một hàm bất đồng bộ. Các hàm bất đồng bộ sẽ luôn trả về một giá trị. Việc sử dụng async chỉ đơn giản là ngụ ý rằng một lời hứa sẽ được trả lại và nếu một lời hứa không được trả lại, JavaScript sẽ tự động kết thúc nó.

Await được sử dụng để chờ một Promise. Nó chỉ có thể được sử dụng bên trong một khối Async. Từ khóa Await làm cho JavaScript đợi cho đến khi promise trả về kết quả. Cần lưu ý rằng nó chỉ làm cho khối chức năng không đồng bộ chờ đợi chứ không phải toàn bộ chương trình thực thi.

Xem thêm: Tìm hiểu về Asynchronous trong JavaScript

10. Em đã học framework nào của JavaScript rồi, tại sao lại học nó?

Top 8 JS Framework không làm bạn thất vọng năm 2021

Hihi, cái này tuỳ quan điểm mỗi người, các bạn tự trả lời nhé!

Xem thêm: Top 8 JS Framework không làm bạn thất vọng năm 2021

Các bạn có thể tham khảo các bài viết hay về JavaScript tại đây.


Hãy tham gia nhóm Học lập trình để thảo luận thêm về các vấn đề cùng quan tâm.

Bình luận