Hướng dẫn sử dụng từ khóa Const trong Javascript

Mục tiêu bài viết

  • Hiểu được từ khóa const và cách sử dụng của từ khóa này.
  • Có thể thực hành với từ khóa const.

Nội dung bài viết

    Ở phiên bản ES2015 đã giới thiệu 2 từ khóa Javascript mới là letconst. Bài trước chúng ta đã tìm hiểu let, đến bài này chúng ta sẽ tìm hiểu thứ còn lại đó là const.

    Các biến được xác định bằng const hoạt động giống như biến let, ngoại trừ chúng không thể được gán lại giá trị. Ví dụ:

const PI = 3.141592653589793;
PI = 3.14; // Gây ra lỗi
PI = PI + 10; // Cũng gây ra lỗi
Click để xem kết quả

Phạm vi khối

    Khai báo biến với từ khóa const cũng giống như let.

var x = 10;
// Ở đây x là 10
{
  const x = 2;
  // Ở đây x là 2
}
// Ở đây x là 10
Click để xem kết quả

Gán khi khai báo

    Biến khai báo với từ khóa const phải được gán giá trị khi khai báo.

const PI;
PI = 3.14159265359; // sai

const PI = 3.14159265359; // đúng

Hằng số

    const không xác định một giá trị không đổi mà nó xác định một tham chiếu không đổi đến một giá trị.

    Bởi vì điều này nên không thể thay đổi các giá trị nguyên thủy không đổi, nhưng chúng ta có thể thay đổi các thuộc tính của các đối tượng hằng số

Giá trị nguyên thủy

    Nếu gán một giá trị nguyên thủy cho một hằng số thì chúng ta không thể thay đổi giá trị đó. Ví dụ:

const PI = 3.141592653589793;
PI = 3.14; // error
PI = PI + 10; // error
Click để xem kết quả

Hằng số là đối tượng có thể thay đổi

    Khi khai báo một đối tượng với từ khóa const chúng ta có thể thay đổi giá trị của thuộc tính đối tượng. Ví dụ:

const car = { type: "Fiat", model: "500", color: "white" };

// thay đổi giá trị của thuộc tính color
car.color = "red";

// Có thể thêm cả thuộc tính mới vào đối tượng.
car.owner = "Johnson";
Click để xem kết quả

    Có thể thay đổi giá trị của thuộc tính đôi tượng nhưng không thể gán lại cho nó một đối tượng mới. Ví dụ:

const car = { type: "Fiat", model: "500", color: "white" };
car = { type: "Volvo", model: "EX60", color: "red" }; // ERROR
Click để xem kết quả

Hàng số là mảng có thể thay đổi

    Tương tự như đối tượng, chúng ta có thể thay đổi các giá trị của các phần tử trong 1 mảng. Ví dụ:

const cars = ["Saab", "Volvo", "BMW"];

// Thay đổi phần tử thứ 0
cars[0] = "Toyota";

// Có thể thêm cả phần tử mới vào mảng.
cars.push("Audi");
Click để xem kết quả

    Tương tự Object , bạn cũng không thể gán lại cho nó 1 mảng mới. Ví dụ:

const cars = ["Saab", "Volvo", "BMW"];
cars = ["Toyota", "Volvo", "Audi"]; // ERROR
Click để xem kết quả

Khai báo lại

    Không được phép khai báo đè biến var hoặc let hiện có thành biến const trong cùng phạm vi hoặc cùng một khối. Ví dụ:

var x = 2;
const x = 2; // Không được phép
{
  let x = 2;
  const x = 2; // Không được phép
}

    Không được phép khai báo lại hoặc gán lại một biến const hiện có, trong cùng phạm vi hoặc trong cùng một khối.

const x = 2;
const x = 3; // Không được phép
x = 3; // Không được phép
var x = 3; // Không được phép
let x = 3; // Không được phép
const x = 2;
const x = 3; // Không được phép
x = 3; // Không được phép
var x = 3; // Không được phép
let x = 3; // Không được phép

    Được phép khai báo lại một biến với const, trong một phạm vi khác hoặc trong một khối khác.

const x = 2; // Được phép

{
  const x = 3; // Được phép
}

{
  const x = 4; // Được phép
}

Hoisting

    Các biến được định nghĩa bằng var được đẩy lên trên cùng và sẽ được khởi tạo.

    Nhưng với biến const cũng được đưa lên đầu khối, nhưng không được khởi tạo. Khối mã nhận biết được biến, nhưng nó không thể được sử dụng cho đến khi nó đã được khai báo.

    Sử dụng một biến const trước khi nó được khai báo, là một lỗi cú pháp.

carName = "Volvo";
const carName;
Click để xem kết quả

Nguồn: Viblo

Bình luận
Vui lòng đăng nhập để bình luận
Một số bài viết liên quan