Node.js - Đối tượng Toàn cục
Xin chào, các bạn đang học lập trình! Hôm nay, chúng ta sẽ cùng khám phá thế giới đầy thú vị của các Đối tượng Toàn cục trong Node.js. Là giáo viên khoa học máy tính hàng xóm thân thiện của bạn, tôi rất vui được hướng dẫn bạn trong hành trình này. Đừng lo lắng nếu bạn là người mới bắt đầu lập trình - chúng ta sẽ bắt đầu từ những điều cơ bản và dần dần nâng cao. Vậy, hãy lấy ly đồ uống yêu thích của bạn, thư giãn và bắt đầu nào!
Đối tượng Toàn cục là gì?
Trước khi chúng ta đi vào chi tiết, hãy hiểu đối tượng toàn cục là gì. Hãy tưởng tượng bạn đang ở trong một ngôi nhà lớn (đó là môi trường Node.js của bạn), và có những công cụ bạn có thể sử dụng trong bất kỳ phòng nào mà không cần mang theo chúng. Những công cụ này giống như các đối tượng toàn cục - chúng luôn sẵn sàng để bạn sử dụng trong các chương trình Node.js của mình, không matter bạn đang ở đâu trong mã của bạn.
Lớp Buffer
Hãy bắt đầu với lớp Buffer. Hãy tưởng tượng một bộ đệm như một không gian lưu trữ tạm thời cho dữ liệu, giống như một chậu chứa nước.
Tạo một Buffer
const buf1 = Buffer.alloc(10);
console.log(buf1); // Output: <Buffer 00 00 00 00 00 00 00 00 00 00>
const buf2 = Buffer.from('Hello, Node.js!');
console.log(buf2.toString()); // Output: Hello, Node.js!
Trong ví dụ này, buf1
giống như một chậu trống có thể chứa 10 đơn vị dữ liệu. buf2
được tạo từ một chuỗi, và chúng ta có thể chuyển đổi nó trở lại thành chuỗi bằng cách sử dụng toString()
.
Làm việc với Buffers
const buf = Buffer.alloc(4);
buf.write('Hey!');
console.log(buf.toString()); // Output: Hey!
buf[1] = 111; // Mã ASCII cho 'o'
console.log(buf.toString()); // Output: Hoy!
Ở đây, chúng ta đang viết vào bộ đệm và thậm chí thay đổi từng byte. Nó giống như vẽ lên các phần khác nhau của chậu của bạn!
Lớp Console
Lớp Console là người bạn đồng hành đáng tin cậy của bạn cho việc gỡ lỗi và ghi lại thông tin.
console.log('Hello, World!'); // In: Hello, World!
console.error('Oops, something went wrong!'); // In lỗi bằng màu đỏ
console.warn('Be careful!'); // In cảnh báo bằng màu vàng
console.time('Loop time');
for(let i = 0; i < 1000000; i++) {}
console.timeEnd('Loop time'); // In: Loop time: 2.845ms
Những phương thức này giúp bạn hiểu những gì đang xảy ra trong mã của bạn. Nó giống như bạn đang có một cuộc trò chuyện với chương trình của bạn!
Đối tượng Process
Đối tượng Process là cửa sổ của bạn đến môi trường Node.js và tiến trình hiện tại.
console.log(`Node.js version: ${process.version}`);
console.log(`Current directory: ${process.cwd()}`);
process.on('exit', (code) => {
console.log(`About to exit with code: ${code}`);
});
process.exit(0);
Đối tượng này cho phép bạn tương tác với tiến trình Node.js hiện tại. Nó giống như bạn có một bảng điều khiển cho chương trình của bạn!
Các hàm đếm thời gian toàn cục
Node.js cung cấp một số hàm để lập lịch thực thi mã. Hãy nhìn vào một vài ví dụ:
setTimeout(() => {
console.log('This runs after 2 seconds');
}, 2000);
setInterval(() => {
console.log('This runs every 3 seconds');
}, 3000);
setImmediate(() => {
console.log('This runs as soon as possible');
});
Những hàm này giống như đặt báo thức hoặc nhắc nhở cho mã của bạn thực hiện điều gì đó sau này.
Các biến toàn cục
Node.js cung cấp một số biến toàn cục luôn sẵn có:
console.log(__dirname); // In tên thư mục của module hiện tại
console.log(__filename); // In tên tệp của module hiện tại
console.log(module); // Tham chiếu đến module hiện tại
console.log(exports); // Tham chiếu đến đối tượng module.exports
console.log(require); // Hàm để bao gồm các module
Những biến này cung cấp cho bạn thông tin về tệp và module hiện tại. Chúng giống như tọa độ GPS cho mã của bạn!
Các Đối tượng Toàn cục Khác
Dưới đây là bảng của một số đối tượng toàn cục quan trọng khác trong Node.js:
Đối tượng | Mô tả |
---|---|
global | Đối tượng không gian tên toàn cục |
process | Cung cấp thông tin và kiểm soát tiến trình Node.js hiện tại |
console | Sử dụng để in ra stdout và stderr |
Buffer | Sử dụng để xử lý dữ liệu nhị phân |
setTimeout(), clearTimeout(), setInterval(), clearInterval() | Hàm đếm thời gian |
setImmediate(), clearImmediate() | Để lập lịch thực thi "ngay lập tức" của một hàm回调 |
Nhớ rằng, những đối tượng này luôn sẵn có trong môi trường Node.js của bạn, sẵn sàng giúp bạn xây dựng các ứng dụng tuyệt vời!
Cuối cùng, các đối tượng toàn cục trong Node.js là những công cụ mạnh mẽ giúp cuộc sống của bạn như một lập trình viên dễ dàng hơn. Chúng giống như một cây đa năng trong túi của bạn - luôn có sẵn khi bạn cần. Khi bạn tiếp tục hành trình của mình trong Node.js, bạn sẽ thấy mình sử dụng những đối tượng này ngày càng nhiều.
Tôi hy vọng hướng dẫn này đã giúp bạn và thú vị. Nhớ rằng, lập trình là một hành trình, và mỗi dòng mã bạn viết là một bước tiến. Hãy tiếp tục thực hành, 保持好奇心, và quan trọng nhất, hãy vui vẻ! Chúc may mắn, các ninja Node.js tương lai!
Credits: Image by storyset