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à let và const. Bài trước chúng ta đã tìm hiểu let, đến bài

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ụ:

constPI=3.141592653589793;PI=3.14;// Gây ra lỗiPI=PI+10;// Cũng gây ra lỗi

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

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.

constPI;PI=3.14159265359;// saiconstPI=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ụ:

constPI=3.141592653589793;PI=3.14;// errorPI=PI+10;// error

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";

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

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");

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

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épvar x =3;// Không được phéplet x =3;// Không được phép
const x =2;const x =3;// Không được phép
x =3;// Không được phépvar x =3;// Không được phéplet 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;

Nguồn: viblo.asia

Bài viết liên quan

WebP là gì? Hướng dẫn cách để chuyển hình ảnh jpg, png qua webp

WebP là gì? WebP là một định dạng ảnh hiện đại, được phát triển bởi Google

Điểm khác biệt giữa IPv4 và IPv6 là gì?

IPv4 và IPv6 là hai phiên bản của hệ thống địa chỉ Giao thức Internet (IP). IP l

Check nameservers của tên miền xem website trỏ đúng chưa

Tìm hiểu cách check nameservers của tên miền để xác định tên miền đó đang dùn

Mình đang dùng Google Domains để check tên miền hàng ngày

Từ khi thông báo dịch vụ Google Domains bỏ mác Beta, mình mới để ý và bắt đầ