NodeJS là mã nguồn mở chạy trong JavaScript V8 runtime. NodeJS được viết bằng C++ và Javascript, loại nền tảng (Platform) này được sử dụng để tạo ra các chương trình mạng, xây dựng những ứng dụng web, máy chủ Rest api, v.vv.. Lập trình viên NodeJS là một trong những việc làm thuộc khối ngành IT có mức thu nhập khủng. Không ít người định hướng theo đuổi công việc này, để thuận lợi trúng tuyển công việc mơ ước bạn phải trải qua vòng phỏng vấn. TopCV sẽ giới thiệu đến bạn bộ câu hỏi phỏng vấn NodeJS thường gặp nhất để bạn có thể chinh phục nhà tuyển dụng.
NodeJS là gì?
NodeJS là một mã nguồn được xây dựng trên Javascript Engine (V8 Engine). NodeJS cũng được biết đến như một nền tảng (Platform) được phát triển năm 2009 bởi Ryan Dahl. Node.js dựa trên Chrome Javascript runtime phát triển các ứng dụng web, tận dụng kiến trúc hướng sự kiện (event-driven), mô hình non-blocking I/O để tạo ra các ứng dụng nhẹ và hiệu quả. Những ứng dụng Node.js được viết bằng Javascript, chúng có thể chạy trong môi trường Nodejs trên hệ điều hành Window, Linux, v.vv..
Nêu các kiểu dữ liệu trong Node.js
Giống như JavaScript, Node.js có những kiểu dữ liệu sau:
- Kiểu dữ liệu nguyên thủy:
- String: biểu diễn chữ, văn bản, đoạn văn bản
- Number: các số bất kỳ
- Bigint: biểu diễn số nguyên lớn
- Boolean: true/false
- Undefined: các giá trị chưa được gán
- Null: các giá trị không xác định
- Symbol: tạo ra các giá trị duy nhất (unique value) và bất biến (immutable)
- Kiểu dữ liệu tham chiếu (Objects): tập hợp của các cặp key-value
- Function
- Array
- Buffer
>>> Xem thêm: Tuyển tập những câu hỏi phỏng vấn sql thường gặp nhất
Các tính năng chính của Node.js là gì?
Hiện nay, Node.js đã và đang trở thành lựa chọn hàng đầu của nhiều kỹ sư phần mềm cũng như lập trình viên. Một vài tính năng nổi bật của Node.js phải đề cập đến là:
- Lập trình hướng sự kiện và không đồng bộ: Tất cả các API đều không đồng bộ. Tính năng lập trình hướng sự kiện và không đồng bộ có nghĩa là nếu Node nhận được yêu cầu nào đó, nó sẽ thực hiện ở chế độ nền và tiếp tục xử lý những yêu cầu khác. Chính bởi vậy nên Node sẽ không phải chờ đợi phản hồi từ các yêu cầu trước.
- Thực thi mã cực kỳ nhanh chóng: Node.js sử dụng công cụ V8 JavaScript Runtime. Chính điều này giúp cho quá trình thực thi mã trở nên cực kỳ nhanh chóng, việc tiếp nhận cũng như xử lý các yêu cầu cũng nhanh hơn rất nhiều.
- Một luồng nhưng có khả năng mở rộng cao: Dù sử dụng mô hình luồng đơn để lặp lại sự kiện nhưng khả năng mở rộng của Nodejs cực kỳ ấn tượng, phản hồi về sự kiện sẽ nhanh chóng được gửi đến máy chủ. Trong khi các loại máy chủ truyền thống sẽ tạo ra luồng giới hạn để xử lý các yêu cầu thì Nodejs chỉ tạo một luồng đơn duy nhất.
- Không có buffer: Phần lớn các ứng dụng Node.js không có vùng nhớ tạm hay còn gọi là buffer cho bất kỳ loại dữ liệu nào. Các dữ liệu sẽ được xuất theo khối, ứng dụng Node.js không đệm bất kỳ dữ liệu nào.
- License: Node.js được phát hành theo giấy phép MIT
Để tiếp cận với hàng nghìn thông tin tuyển dụng uy tín, hãy nhanh tay truy cập TopCV.vn. Tại đây bạn sẽ tìm thấy những cơ hội việc làm mới từ các công ty uy tín với mức lương tốt nhất!
Tại sao nên sử dụng Expressjs?
ExpressJS là một framework NodeJS, khi đi phỏng vấn NodeJS bạn sẽ thường được nhà tuyển dụng đặt các câu hỏi liên quan đến ExpressJS. Thông thường, ExpressJS được sử dụng để xây dựng và thiết kế web, mục đích chính là tạo ra những ứng dụng web thông minh hơn. Framework này sẽ mang đến sự đơn giản và linh hoạt.
Expressjs là khuôn khổ của Node.js nên các mã code đã được viết sẵn. Expressjs sẽ hỗ trợ các lập trình viên có thể nhanh chóng tạo ra ứng dụng web (1 ứng dụng web hoặc nhiều ứng dụng web). Ưu điểm của Expressjs chính là dung lượng nhẹ nên giúp cho quá trình tổ chức các ứng dụng web theo kiến trúc MVC trở nên đơn giản hơn. Nếu như không có Expressjs, lập trình viên sẽ phải thực hiện rất nhiều thao tác phức tạp hơn để có thể xây dựng một API hiệu quả.
>>> 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
NodeJs đơn luồng hay đa luồng?
Đây là câu hỏi phỏng vấn Nodejs cực kỳ hay gặp, rất nhiều nhà tuyển dụng đã lựa chọn câu hỏi này để đánh giá xem ứng viên có hiểu cách vận hành của Nodejs hay không. Khi trả lời câu hỏi này bạn cần hết sức chú ý, dù chọn đơn luồng hay đa luồng thì bạn đều phải đưa ra được lý do thỏa đáng cho lựa chọn đó.
Nodejs đơn luồng thể hiện ở việc nó chỉ có một tác vụ Javascript được xử lý tại một thời điểm nhất định.
Nodejs đa luồng thể hiện ở việc nó cung cấp API cluster và child_process để tạo các quy trình con. Trên phiên bản 13 của Node.js có mô-đun “worker thread” để triển khai đa luồng.
Vòng lặp sự kiện trong Node.js là gì?
Vòng lặp sự kiện trong Node.js hay còn gọi là Event Loop cho phép Nodejs thực hiện nhiều thao tác cùng một lúc, Nodejs có thể một lúc xử lý cả ngàn request dù chỉ dùng một thread duy nhất. Vòng lặp sự kiện trong Node.js cho phép Node.js thực hiện những hoạt động I/O không chặn. Về bản chất thì Node.js là một ứng dụng đơn luồng, nhưng Node.js có thể hỗ trợ xử lý đồng thời thông qua định nghĩa về event và callbacks. Mọi API của Node.js là không đồng bộ và là một luồng, chúng sử dụng async function calls để duy trì đồng thời.
REPL Terminal trong Node.js là gì?
REPL Terminal là viết tắt của Read Eval Print Loop (READ, EVAL, PRINT, LOOP), nó thể hiện một môi trường máy tính tương tự như màn hình console của Shell (Unix / Linux). REPL đặc biệt hữu ích khi bạn muốn viết hoặc gỡ lỗi của các mãi. Cụ thể vai trò cũng như tầm quan trọng của REPL thể hiện qua:
- READ (đọc): Đọc thông tin đầu vào và phân tích chúng thành cấu trúc dữ liệu JavaScript, sau đó lưu vào bộ nhớ
- EVAL (Đánh giá): Tiến hành đánh giá toàn bộ cấu trúc dữ liệu
- PRINT (In): In kết quả sau khi được đánh giá
- LOOP (Vòng lặp): Lặp các dòng lệnh, nếu muốn thoát hãy gõ ctrl+C hai lần
EventEmitter trong nodejs là gì?
Người dùng có thể dễ dàng tạo hoặc xử lý các sự kiện thông qua việc sử dụng module event. Thông thường Module event sẽ bao gồm lớp EventEmitter. Tất cả các đối tượng phát ra event đều là thành viên của lớp EventEmitter. Khi EventEmitter phát ra một sự kiện, tất cả các hàm gắn liền với sự kiện được gọi đồng bộ. Tất cả các giá trị được trả về bởi các trình nghe được gọi sẽ bị bỏ qua và bị loại bỏ.
Sự khác nhau giữa Events và Callbacks là gì?
Khi tiếp cận với Node.js, bạn hẳn sẽ không xa lạ với hai khái niệm event và Callbacks. Đâu là sự khác biệt giữa event và Callbacks? Đầu tiên, bạn cần hiểu rõ về hai khái niệm này.
Callback là hàm gọi lại, đây là hàm được truyền vào hàm khác dưới dạng đối số. Thông thường, hàm này sẽ được thực thi sau khi một hàm khác đã được thực thi xong, chính vậy nên nó được đặt tên là hàm gọi lại.
Event: Mỗi một hành động đều là một sự kiện, Node.js cho phép tạo và tiến hành xử lý các sự kiện bằng cách sử dụng các mô-đun sự kiện.
Hàm Callback được gọi khi một hàm không đồng bộ được thực thi và trả về kết quả khi có event xảy ra. Khi event được kích hoạt, các hàm lắng nghe sẽ được thực thi.
RESTful Web Service trong Node là gì?
REST (REpresentational State Transfer) là kiến trúc dựa trên tiêu chuẩn web và sử dụng Giao thức HTTP. Máy chủ REST chỉ đơn giản là cung cấp quyền truy cập vào tài nguyên và máy khách REST truy cập và sửa đổi tài nguyên bằng giao thức HTTP.
Phương thức HTTP
- GET- Cung cấp quyền truy cập chỉ đọc vào một tài nguyên.
- PUT- Cập nhật tài nguyên hiện có hoặc tạo tài nguyên mới.
- DELETE- Loại bỏ một tài nguyên.
- POST- Tạo ra một nguồn tài nguyên mới.
- PATCH- Cập nhật / sửa đổi tài nguyên
Nguyên tắc của REST
- Giao diện thống nhất
- Không quốc tịch
- Có thể lưu vào bộ nhớ đệm
- Máy khách-Máy chủ
- Hệ thống phân lớp
- Mã theo yêu cầu (tùy chọn)
Trên đây là những câu hỏi phỏng vấn Nodejs hay được hỏi nhất trong những buổi phỏng vấn. TopCV đã tổng hợp và đưa ra gợi ý trả lời cho từng câu hỏi để bạn đọc có thể tham khảo. Nếu như bạn đang quan tâm tới vị trí lập trình viên Nodejs thì TopCV hy vọng bộ câu hỏi phỏng vấn lập trình viên Nodejs sẽ là nguồn tham khảo bổ ích đối với bạn.
Để tìm việc làm lập trình viên Nodejs tại Hà Nội, lập trình viên tại Nodejs TPHCM hoặc các thành phố lớn trên cả nước, bạn có thể truy cập ngay vào TopCV. Chúng tôi có sẵn rất nhiều việc làm lập trình viên Nodejs hấp dẫn với mức lương trong mơ, cùng với mẫu CV lập trình viên Nodejs giúp bạn ứng tuyển nhanh chóng.