Javascript trong let, var, và const là gì? Dùng trong trường hợp nào?

1. let, var, và const là gì?

Trong JavaScript, let, var, và const đều là từ khóa dùng để khai báo biến, nhưng chúng có các đặc điểm và phạm vi hoạt động khác nhau.

  • var: Là cách khai báo biến cũ trước khi có ES6 (ECMAScript 2015). Biến var có phạm vi toàn cục hoặc phạm vi hàm, và nó có thể được hoisted, tức là được đưa lên đầu phạm vi trước khi mã thực thi.
  • let: Được giới thiệu trong ES6, khai báo biến có phạm vi khối (block scope), tức là nó chỉ tồn tại trong khối {} bao quanh nó. let không cho phép tái khai báo trong cùng phạm vi và được hoisted nhưng không khởi tạo trước.
  • const: Cũng được giới thiệu trong ES6, dùng để khai báo các biến hằng số, nghĩa là giá trị của chúng không thể bị gán lại sau khi đã được khởi tạo. const cũng có phạm vi khối như let.

2. Dùng trong trường hợp nào?

  • var:
    • Sử dụng hạn chế vì phạm vi rộng của var có thể dẫn đến lỗi không mong muốn, nhất là trong các dự án lớn hoặc khi mã phức tạp.
    • Dùng khi bạn cần khai báo biến mà có thể truy cập từ nhiều phạm vi hoặc khi cần hỗ trợ mã cũ.
  • let:
    • Dùng khi bạn cần khai báo biến mà giá trị của nó có thể thay đổi.
    • Nên sử dụng let thay cho var trong hầu hết các trường hợp để hạn chế lỗi và đảm bảo biến chỉ tồn tại trong phạm vi khối.
  • const:
    • Dùng khi bạn muốn khai báo biến có giá trị cố định và không cần thay đổi sau khi khởi tạo.
    • Phù hợp để khai báo các hằng số hoặc các biến mà bạn không có ý định gán lại giá trị mới.
    • Với các đối tượng (objects) hoặc mảng (arrays), sử dụng const khi bạn chỉ thay đổi thuộc tính của đối tượng hoặc các phần tử của mảng mà không cần thay đổi tham chiếu.

Ví dụ minh họa:

  • var:

function exampleVar() {
var x = 10;
if (true) {
var x = 20; // Biến `x` bên trong if vẫn là biến `x` đã khai báo trước đó
console.log(x); // 20
}
console.log(x); // 20
}

  • let:


function exampleLet() {
let x = 10;
if (true) {
let x = 20; // Biến `x` này chỉ tồn tại trong phạm vi của khối if
console.log(x); // 20
}
console.log(x); // 10
}

 

  • const:


const pi = 3.14;
// pi = 3.1415; // Lỗi: Không thể gán lại giá trị cho biến `const`

const obj = { name: “John” };
obj.name = “Jane”; // Có thể thay đổi thuộc tính của đối tượng
console.log(obj.name); // Jane

 


Tóm lại:

  • Sử dụng var nếu cần hỗ trợ mã cũ hoặc khi phạm vi rộng không gây vấn đề.
  • Sử dụng let khi cần khai báo biến mà giá trị có thể thay đổi và chỉ muốn nó tồn tại trong phạm vi khối.
  • Sử dụng const khi biến cần có giá trị cố định hoặc không muốn thay đổi tham chiếu của biến, đặc biệt là với các đối tượng và mảng.