Minh đã đọc rất nhiều bài viết và có rất nhiều cuộc tranh luận là nên dùng var, let hay const. Có người thì nói const là bất biến (immutability), nhưng cũng có người nói nó không phải là bất biến (immutability) vì giá trị nó vẫn được gán lại mà. Cũng có người do performance của var let và const trên chrome thì họ thấy nếu dùng let và const  thì performance giảm hơn 21% so với var. Tất nhiên đó cũng là những quan điểm cá nhân. Và mình cũng không tranh luận.

Bài viết hôm nay chủ yếu của mình là hướng dẫn các bạn cách luôn luôn dùng const.

Khi nhắc tới const, chắc hẳn các bạn chỉ nghỉ ràng giá trị nó sẽ không thay đổi. Nhưng trái lại nó lại được thay đổi trong 2 trường hợp sau. Đó là object và array. Hãy xem những ví dụ dưới:

  • Object

Đây là trường hợp hơp lệ. Tức là bạn là thể change được value của property trong object đó

/***************************************************************/

// You can create a const object:
const car = {type:"Fiat", model:"500", color:"white"};

// You can change a property:
car.color = "red";

// You can add a property:
car.owner = "Johnson";

/***************************************************************/

 

Đây là trường hợp sẽ gây lỗi. Tức là bạn không thể gán lại 1 object khác.

/***************************************************************/

const car = {type:"Fiat", model:"500", color:"white"};
car = {type:"Volvo", model:"EX60", color:"red"};    // ERROR

/***************************************************************/

 

  • Array

Đây là trường hợp hợp lệ. Bạn có thể gán lại giá trị ở 1 index nào đó, hoặc push thêm item vào cũng được

/***************************************************************/

// You can create a constant array:
const cars = ["Saab", "Volvo", "BMW"];

// You can change an element:
cars[0] = "Toyota";

// You can add an element:
cars.push("Audi");

/***************************************************************/

Còn đây là trường hợp gây lỗi. Tức là bạn không thể gán lại bằng array khác được.

const cars = ["Saab", "Volvo", "BMW"];
cars = ["Toyota", "Volvo", "Audi"];    // ERROR