Bạn hiểu Nodejs tới mức nào?

  1. V8 là gì? Node có chạy được không nếu thiếu V8?
    – V8 là một javascript engine dùng để compile, tối ưu và chạy Node.js
    – Node có thể chạy mà không cần V8, một vài js engine khác: SpiderMonkeyChakraCore
  2. exports và module.exports
    enter image description here
    Ban đầu exports và module.exports cùng trỏ vào 1 object rỗng. Nhưng hãy luôn nhớ rằng, ở cuối mỗi module trong Nodejs, module.exports là object được return.
    – Khi bạn code như sau:

    Nodejs sẽ add thêm 1 thuộc tính a và b vào object rỗng ban đầu. Do exports và module.exports vẫn đang trỏ vào cùng 1 object nên sẽ không có sự khác biệt khi bạn code:

    – Khi bạn code như sau:

    Nodejs sẽ báo lỗi ngay lập tức. Bởi vì exports giờ đã được trỏ tới 1 object hoàn toàn mới (function Something), trong khi module này vẫn return exports.module

    Tips: chỉ dùng exports.module cho đỡ phải nhọc não

  3. Khi khai báo 1 biến global trong 1 module, tại sao nó không global với các module khác?
    Do mỗi module trong Nodejs được wrap bởi 1 function:

  4. Có thể dùng nhiều version của 1 package trong cùng 1 app ko?
    Không
  5. Event-loop là gì?
    <
    wait-for-it>
  6. Call-stack là gì?
    Là 1 cấu trúc dữ liệu stack ghi lại các lời gọi hàm:Khi 1 hàm được gọi, nó được push vào stack. Khi 1 hàm return, nó được pop khỏi stack.Mỗi khi chương trình gặp lỗi, browser sẽ hiển thị trạng thái hiện tại của call-stack. Trong Node, call-stack được xử lý bởi V8.
  7. Sự khác nhau giữa spawn, exec, và fork
  8. Xem memory used by Node?

  9.  V8 Object là gì?
    La object C++ native biểu diễn object JS. Nói cách khác V8 object là cách V8. biểu diễn object của JS.
  10. Libuv là gì?
    libuvMột thư viện đa nền tảng tập trung vào xử lý các tác vụ I/O bất đồng bộ: file system event, event loop, thread pool, timers…
  11. Làm sao để thực hiện 1 function trước khi exit process?

  12. Node buffer có sử dụng V8 memory ko?
    Không. Node buffer mem được allocated bên ngoài V8 heap.
  13. Trường main trong file package.json có tác dụng gì?

    Xác định entry point khi app được chạy. Ví dụ khi app với package.json trên được chạy, nó sẽ chạy vào file index.js đầu tiên.

  14. 3 loại file sẽ được chạy khi require
    .json, .node, .js
  15. Bằng cách nào 1 module có thể được gọi trực tiếp và require từ module khác đồng thời?

  16. Đo execute time ntn?

  17. Callback là gì?
    Là 1 hàm được gọi sau khi 1 tác vụ được hoàn thành.
  18. Error-first callback là gì?
    Là 1 callback với argument đầu tiên luôn là error, các argument khác được dùng để pass data.

  19. Promise là gì?
    Là 1 cơ chế giúp xử lý các tác vụ bất đồng bộ.

 

Leave a Reply

Your email address will not be published.