Khai báo biến: let và const
Variable declaration trong JavaScript có let và const.
Khai báo biến với let
Cách viết khai báo biến bằng let như sau.
tsletx = 1;
tsletx = 1;
let cho phép gán lại giá trị.
tsletx = 1;x = 2; // Có thể gán lại
tsletx = 1;x = 2; // Có thể gán lại
let có thể định nghĩa biến không có giá trị khởi tạo. Giá trị của biến không có giá trị khởi tạo là undefined.
jsletx ; // Không có giá trị khởi tạox = 1; // Gán sau
jsletx ; // Không có giá trị khởi tạox = 1; // Gán sau
Khai báo biến với const
Cách viết khai báo biến bằng const như sau. Giá trị khởi tạo là bắt buộc.
jsconsty = 2;
jsconsty = 2;
const không cho phép gán lại giá trị cho biến.
jsconsty = 1;y = 1;
jsconsty = 1;y = 1;
Phân biệt cách dùng let và const
Khi lần đầu viết JavaScript, có thể phân vân nên dùng let hay const để khai báo biến. Khuyến nghị là cơ bản dùng const để khai báo biến, chỉ dùng let khi cần thiết. Khai báo biến bằng const ngăn chặn việc gán lại, tránh việc biến bị thay đổi ngoài ý muốn, giúp code an toàn hơn.
Chia sẻ kiến thức
・Variable declaration trong JavaScript có let và const
・let cho phép gán lại, const không cho phép gán lại
・Cơ bản nên dùng const
Từ 『Survival TypeScript』
const không bảo vệ mutable object
const chỉ khai báo tên biến không thể gán lại. const không có hiệu quả bảo vệ khiến property của mutable object trở nên immutable. Điểm này thường bị hiểu lầm.
Ví dụ, khi khai báo object bằng const, không thể gán lại cho bản thân biến. Tuy nhiên có thể thay đổi object property.
tsconstobj = {a : 1 };Cannot assign to 'obj' because it is a constant.2588Cannot assign to 'obj' because it is a constant.= { obj a : 2 }; // Không thể gán lạiobj .a = 2; // Có thể thay đổi property
tsconstobj = {a : 1 };Cannot assign to 'obj' because it is a constant.2588Cannot assign to 'obj' because it is a constant.= { obj a : 2 }; // Không thể gán lạiobj .a = 2; // Có thể thay đổi property
Để làm object immutable trong TypeScript, cần đặt property thành read-only.
📄️ Readonly property của object type
Trong TypeScript, có thể đặt property của object thành read-only. Thêm modifier readonly vào property muốn đặt thành read-only. Khi cố gán giá trị cho property read-only, TypeScript compiler sẽ cảnh báo không thể gán.
Array cũng là một loại object nên tương tự. Không thể gán lại cho bản thân biến. Tuy nhiên có thể thay đổi element của array.
tsconstarr = [1, 2];Cannot assign to 'arr' because it is a constant.2588Cannot assign to 'arr' because it is a constant.= [3, 4]; // Không thể gán lại arr arr .push (3); // Có thể thay đổi element
tsconstarr = [1, 2];Cannot assign to 'arr' because it is a constant.2588Cannot assign to 'arr' because it is a constant.= [3, 4]; // Không thể gán lại arr arr .push (3); // Có thể thay đổi element
Để làm array immutable trong TypeScript cần dùng read-only array.
📄️ Read-only array
Trong TypeScript, có thể type annotation cho array là read-only (readonly). Có 2 cách type annotation. Cách thứ nhất là sử dụng từ khóa readonly. Cách thứ hai là sử dụng ReadonlyArray.
Cũng có phương pháp làm object hoặc array immutable bằng const assertion.
📄️ Const assertion "as const"
Khi khai báo biến, thêm as const vào cuối sẽ làm cho giá trị đó thành readonly và chuyển thành literal type.