Node.js is a JavaScript runtime built on Chrome's V8 JavaScript engine. It uses an event-driven, non-blocking I/O model that makes it lightweight and efficient. Node.js can be used to write web servers, real-time chat servers, and utility programs like file management scripts. It is best for asynchronous applications and not for CPU intensive tasks like stock calculations. Under the hood, Node.js uses an event loop to handle asynchronous, single-threaded, event-driven programming.