JavaScript là một trong những loại ngôn ngữ lập trình quan trọng và phổ biến nhất hiện nay. Sự phủ sóng của JavaScript ngày càng lớn, loại ngôn ngữ lập trình này còn có khả năng viết ứng dụng đa nền tảng với React Native, khả năng viết Backend bằng NodeJS,... như rất nhiều ngôn ngữ lập trình khác. Chính vì lý do này nên nhiều lập trình viên đã lựa chọn theo đuổi JavaScript. Nếu bạn cũng vậy thì việc trang bị những kiến thức liên quan đến JavaScript là điều cần thiết. Ở bài viết này, TOPCV sẽ gợi ý bộ câu hỏi phỏng vấn JavaScript cùng câu trả lời để giúp bạn dễ dàng ghi điểm với nhà tuyển dụng. 

JavaScript là gì?

JavaScript là ngôn ngữ lập trình web được tích hợp và nhúng vào HTML. JavaScript hướng đến đối tượng giúp web trở nên chuyên nghiệp hơn, tăng trải nghiệm cho người dùng. Phần lớn những chương trình JavaScript sẽ dễ học, khi có lỗi dễ phát hiện. Ngoài ra, loại ngôn ngữ lập trình này hoạt động trên nhiều nền tảng cũng như trình duyệt khác nhau. 

JavaScript là gì?
JavaScript là gì?

Javascript có phải là một ngôn ngữ hướng đối tượng?

Javascript là ngôn ngữ hỗ trợ lập trình hàm. Tuy nhiên, JavaScript cũng được biết đến như là một ngôn ngữ hỗ trợ lập trình hướng đối tượng. Loại ngôn ngữ lập trình web bày sở hữu cũng như hội tụ đầy đủ tính chất của ngôn ngữ lập trình hướng đối tượng (OOP. Ví dụ như: 

  • Tính đóng gói (Encapsulation)
  • Tính trừu tượng (Abstraction)
  • Tính kế thừa (Inheritance)
  • Tính đa hình (Polymorphism)

>>> Xem thêm: Tuyển tập những câu hỏi phỏng vấn nodejs thường gặp nhất

Sử dụng IDE/Code editor nào khi code JavaScript?

Sử dụng công cụ hỗ trợ viết code JavaScript nào tiện lợi để viết code nhanh hơn? Đây là câu hỏi khá đơn giản nhưng một số nhà tuyển dụng vẫn sử dụng khi phỏng vấn vị trí lập trình viên JavaScript. Dưới dây là 5 IDE được nhiều lập trình viên JavaScript sử dụng: 

  • Visual Studio Code
  • Atom
  • Vim
  • WebStorm
  • Sublime Text
Tuyển tập những câu hỏi phỏng vấn JavaScript thường gặp nhất
Tuyển tập những câu hỏi phỏng vấn JavaScript thường gặp nhất

Trình bày các kiểu dữ liệu trong javascript

Kiểu dữ liệu (data type hoặc type) sẽ phân loại dữ liệu giúp trình biên dịch hoặc trình thông dịch hiểu rõ về kiểu của dữ liệu. JavaScript gồm kiểu dữ liệu nguyên thủy và kiểu dữ liệu không nguyên thủy. Trong đó: 

  • Kiểu dữ liệu nguyên thủy: string, number, bigint, boolean, undefined, symbol, null
  • Kiểu dữ liệu không nguyên thủy: Object, Array, RegExp

>>> Có thể bạn quan tâm: Tìm hiểu các ngôn ngữ lập trình web phổ biến nhất hiện nay

Sự khác biệt giữa == và === trong JavaScript là gì?

== và === là các toán tử so sánh toán hạng. Thông thường, Javascript sẽ có cả kiểu so sánh nghiêm ngặt và chuyển đổi loại. 

Toán tử "==" là toán tử so sánh trừu tượng sẽ cho phép bạn thực hiện các bài kiểm tra để so sánh nội dung, dữ liệu sẽ được chuyển đổi trước khi so sánh. 

Toán tử "===" là toán tử so sánh cân bằng nghiêm ngặt sẽ cho phép bạn so sánh cả nội dung và loại, lúc này Javascript sẽ đếm tất cả những gì nằm giữa hai dấu ngoặc kép dưới dạng chuỗi. Sẽ không cần chuyển đổi dữ liệu để so sánh. 

Hiểu đơn giản thì toán tử "==" sẽ định dạng, chuyển đổi dữ liệu trước khi so sánh. Trong khi toán tử "===" sẽ trả về false nếu giá trị so sánh khác nhau. 

Ví dụ cụ thể: 

console.log(5 == "5"); // true console.log(5 === "5"); // false

Code language: JavaScript (javascript)

Toán tử "==" trả về true vì chuỗi "5" sẽ chuyển thành số 5 trước khi tiến hành so sánh. Toán tử "===" trả về false vì cho rằng hai kiểu dữ liệu này khác nhau

>>> Xem thêm: Tuyển tập những câu hỏi phỏng vấn sql thường gặp nhất

Sự khác biệt giữa Arrow Function và Function trong Javascript

Nêu sự khác biệt giữa Arrow Function và Function là một trong những câu hỏi phỏng vấn JavaScript thường gặp nhất. Arrow Function còn được biết đến là hàm mũi tên thường có cách viết ngắn gọn với cú pháp ES6. Arrow Function là tính năng mới của ES6 đảm bảo việc việc code trở nên ngắn gọn hơn, không có bind, không phù hợp là method của object. Về bản chất thì cả hai đều là Function, tuy nhiên cách viết và cách tham chiếu tới bối cảnh của chúng là hoàn toàn khác nhau. 

Closure trong javascript là gì ?

Trong bộ câu hỏi phỏng vấn JavaScript, câu hỏi liên quan đến hàm Closure khá quan trọng bạn cần lưu ý. Đây là hàm tham chiếu các biến hoặc tham số có phạm vi ngoài phạm vị của hàm đó, bạn có thể truy cập một cách dễ dàng, 

Phân biệt var và let trong JavaScript

Về cơ bản thì var và let đều là từ khóa và được dùng để khai báo biến trong JavaScript. Sự khác biệt giữa let và var chính là phạm vi sử dụng biến. 

  • Phạm vi sử dụng biến của var thường là phạm vi toàn cục
  • Phạm vi sử dụng biến của let là phạm vi khối, xác định bởi cặp {}

Sự khác nhau giữa Null và Undefined

Null và Undefined là hai khái niệm dễ gây nhầm lẫn nhất đối với những người đang bắt đầu học JavaScript. Hai khái niệm tương đối giống nhau nhưng lại không thể đồng nhất là một. Hiểu đơn giản thì Undefined thường được sử dụng để gán giá trị cho biến khi biến đó khai báo nhưng chưa được gán giá trị. Null biểu thị giá trị rỗng hoặc giá trị không tồn tại, null thường được sử dụng để gán cho biến như một đại diện không có giá trị. null là object trong khi undefined là undefined. 

Gợi ý trả lời câu hỏi phỏng vấn JavaScript
Gợi ý trả lời câu hỏi phỏng vấn JavaScript 

Cookie là gì?

Cookie là phần dữ liệu sẽ được lưu trữ trên máy tính khi người dùng truy cập, cookie sẽ ghi nhớ thông tin về người dùng. 

Ví dụ: Cookie sẽ lưu trữ thông tin của người dùng khi họ ghé thăm website, những lần tiếp theo người dùng ghé lại website, cookie vẫn còn nhớ hồ sơ người dùng. Thông thường, JavaScript sẽ có thể tạo mới, đọc và xóa cookie. 

Callback function là gì? 

Callback là hàm phổ biến mà phần lớn các lập trình viên đều biết. Callback function là hàm được gọi lại bởi một hàm khác, khi hàm khác thực hiện xong thì mới tới lượt Callback. Thông thường hàm Callback sẽ được gọi ngay hoặc trễ một chút sau khi hàm trước đó được gọi. 

Callback function là gì?
Callback function là gì? 

Promise trong Javascript là gì? 

Promise là một cơ chế trong JavaScript trả về những giá trị trong tương lai. Promise sẽ tạo ra một giá trị duy nhất ở một thời điểm nào đó trong tương lai với một giá trị đã được giải quyết hoặc chưa được giải quyết bởi một lý do nào đó. Promise sẽ trả về giá trị là hoàn thành (fulfilled), từ chối (rejected) hoặc chờ xử lý (pending).

Server-sent events (SSE) là gì? 

Server-sent events (SSE) là kênh liên lạc một chiều - truyền từ máy chủ đến máy khách thông qua giao thức HTTP. Mục tiêu tạo ra dữ liệu đơn giản cho phía server và API gọn nhẹ cho phía client. 

Hàm setTimeout trong JavaScript là gì? 

Hàm setTimeout() thường được sử dụng để gọi một hàm hoặc đánh giá một biểu thức sau số mili giây được thiết lập. Cú pháp chung thường là: setTimeout ( expression, timeout );

Ví dụ: Hãy ghi lại một đoạn tin nhắn sau 3 giây bằng hàm setTimeout() 

setTimeout ( function ( ) {  console . log ( "Goodbye" ) ;  } ,  3000 ) ;

Hàm setInterval trong JavaScript là gì? 

Hàm setInterval () thường được sử dụng để gọi một hàm hoặc đánh giá một biểu thức trong khoảng thời gian xác định với đơn vị tính là mili giây. Số lần gọi hàm là không giới hạn và lặp lại cho đến khi clearInterval() được gọi hoặc phải tải lại trang. 

Ví dụ: Hãy ghi lại một đoạn tin nhắn sau mỗi 3 giây bằng hàm setInterval ()

setInterval ( function ( ) {  console . log ( "Goodbye" ) ;  } ,  3000 ) ;

Sự khác nhau giữa hàm setTimeout và hàm setInterval trong JavaScript

Đặc điểm chung của hàm setTimeout() và hàm setInterval() là chúng có thể thực hiện các lệnh trong khoảng thời gian xác định, số lần thực hiện có thể có giới hạn hoặc không. Với hàm setTimeout() thì số lần thực hiện sẽ cố định là 1 lần trong khi hàm setInterval() có số lần thực hiện là không giới hạn cho đến khi hàm clearInterval() xuất hiện. Việc nên sử dụng hàm nào là tùy thuộc vào mục đích của bạn.

Toán tử spread trong JavaScript là gì? 

Toán tử spread trong JavaScript sẽ cho phép bạn truy cập vào những nội dung bên trong các tệp lặp (mảng/đối tượng/chuỗi) được mở rộng thành các đối sổ hoặc phần tử đơn lẻ. Bạn có thể copy một mảng, kết hợp mảng, thêm phần tử vào mảng, thêm thuộc tính vào đối tượng,... bằng toán từ Spread. 

Anonymous Function là gì? 

Anonymous Function thường được biết đến dưới cái tên hàm không tên hoặc hàm ẩn danh. Hàm này được sinh ra vào thời điểm chạy chương trình. Các hàm Anonymous sẽ được gán cho một tên biến hoặc được sử dụng như một hàm gọi lại. 

Thông thường các hàm sẽ có tên gọi nhưng Anonymous Function lại là hàm không tên. Bạn sẽ sử dụng tên biến để gán cho tên hàm. Hàm Anonymous cực kỳ hữu dụng khi bạn muốn thực hiện callback function. 

Constructor function trong javascript là gì?

Trong số các câu hỏi phỏng vấn JavaScript thì câu hỏi về hàm Constructor là câu hỏi thường gặp. Constructor function thường tạo ra các thuộc tính và phương thức, để khởi tạo một thuộc tính của đối tượng bạn có thể sử dụng từ khóa new. Cách hoạt động của hàm constructor sẽ giống như một đối tượng, cụ thể thì bạn có thể coi hàm này là một object, có thể thêm thuộc tính và phương thức,... 

IIFE là gì?

IIFE hay Immediately Invoked Function Expression có nghĩa là khởi tạo một hàm và thực thi ngay lập tức. Cú pháp của hàm như sau: 

(function(){

 //code here

})();

Trên đây là tổng hợp những câu hỏi phỏng vấn JavaScript mà bạn có thể tham khảo. TOPCV đã tổng hợp và chắt lọc những câu hỏi thường gặp nhất khi đi phỏng vấn, nắm vững bộ câu hỏi này sẽ giúp bạn dễ dàng được nhà tuyển dụng đánh giá cao. Nếu bạn quan tâm tới vị trí lập trình viên javascript thì hãy nhanh tay tham khảo list job siêu chất tại TOPCV. Chúng tôi đã có sẵn rất nhiều việc làm lập trình viên javascript lương hấp dẫn từ những công ty/tập đoàn lớn trên cả nước. Bạn cũng có thể tạo CV và ứng tuyển ngay hôm nay. 



source https://www.topcv.vn/nhung-cau-hoi-phong-van-javascript