×

Khai báo biến đúng cách với var, let, const trong JavaScript

Trong JavaScript, việc khai báo biến đúng cách là một yếu tố quan trọng để viết mã hiệu quả và bảo trì dễ dàng. Các từ khóa chính được sử dụng để khai báo biến là var, let, và const, mỗi từ khóa có những đặc điểm và qui tắc sử dụng khác nhau mà lập trình viên cần nắm vững.

Var

Được sử dụng từ phiên bản đầu tiên của JavaScript, var có phạm vi hoạt động trong hàm (function scope) và có khả năng được tái khai báo bên trong cùng một phạm vi. Điều này đôi khi gây ra những tình huống khó lường.

Ví dụ:

function example() {
    var x = 10;
    if (true) {
        var x = 20;  // cùng phạm vi với x trước đó
        console.log(x); // 20
    }
    console.log(x); // 20
}

Như đã thấy, sử dụng var có thể dẫn đến việc vô tình ghi đè giá trị của các biến khác trong phạm vi hàm, gây lỗi logic khó phát hiện.

Let

Được giới thiệu trong ES6, let cung cấp một cách khai báo biến với phạm vi khối (block scope), nghĩa là biến chỉ có hiệu lực trong khối {} nơi nó được khai báo.

Ví dụ:

function example() {
    let y = 10;
    if (true) {
        let y = 20;  // khác phạm vi với y trước đó
        console.log(y); // 20
    }
    console.log(y); // 10
}

Ở đây, y bên trong khối if là một biến hoàn toàn khác so với y bên ngoài khối, giúp tránh các xung đột biến cục bộ và làm cho mã dễ hiểu hơn.

Const

Cùng ra đời với let trong ES6, const được dùng để khai báo các giá trị hằng số. Giá trị của biến khai báo bằng const không thể thay đổi sau khi được gán.

Ví dụ:

const z = 10;
z = 20; // lỗi: Assignment to constant variable.

Tuy nhiên, đối với các đối tượng phức hợp như mảng hoặc đối tượng (object), const không ngăn chặn sự thay đổi các thuộc tính bên trong chúng.

Ví dụ:

const myArray = [1, 2, 3];
myArray.push(4); // hợp lệ
console.log(myArray); // [1, 2, 3, 4]

const myObject = {a: 1};
myObject.b = 2; // hợp lệ
console.log(myObject); // {a: 1, b: 2}

So sánh và khuyến nghị sử dụng

  1. Phạm vi: Sử dụng letconst thay cho var sẽ giúp tránh được nhiều lỗi tiềm ẩn do phạm vi biến gây ra. Letconst có phạm vi khối, mang lại tính rõ ràng và thống nhất hơn trong mã nguồn.

  2. Tái khai báo và gán lại: Const ngăn việc tái gán biến, giúp giữ nguyên giá trị ban đầu và làm mã nguồn dễ dự đoán. Let cho phép tái gán nhưng không cho phép tái khai báo trong cùng một phạm vi.

  3. Hiệu suất và tối ưu: Sử dụng const bất cứ khi nào khả thi (khi bạn biết giá trị sẽ không thay đổi) giúp ngăn lỗi và biểu thị rõ ý định của lập trình viên, cải thiện sự đánh giá mã của người đọc cũng như các công cụ tối ưu hóa của trình duyệt.

Kết luận

Việc áp dụng đúng cách các từ khóa khai báo biến trong JavaScript như var, let, và const không chỉ cải thiện chất lượng mã nguồn mà còn đóng vai trò quan trọng trong việc tránh các lỗi tiềm ẩn. Hãy luôn cân nhắc phạm vi của biến, khả năng tái khai báo và gán lại trong quá trình viết mã để đảm bảo hiệu quả và độ tin cậy cao của chương trình.

Comments