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!

Node.js - Global Objects

Đố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