JavaScript Constants: Unlocking the Power of Immutability
Xin chào các pháp sư JavaScript tương lai! Tôi rất vui mừng được dẫn bạn vào hành trình qua thế giới kỳ diệu của các hằng số JavaScript. Là giáo viên khoa học máy tính hàng xóm thân thiện của bạn, tôi đã thấy rất nhiều sinh viên struggle với khái niệm này, nhưng đừng lo lắng! Đến cuối bài học này, bạn sẽ trở thành những nhà sành điệu về hằng số. Vậy, hãy lấy键盘 (keyboards) của bạn và cùng nhau lặn vào!
What are JavaScript Constants?
Hãy tưởng tượng bạn đang nướng một chiếc bánh. Một khi bạn đã đặt nó vào lò nướng, bạn không thể đột nhiên quyết định biến nó thành một chiếc pizza, phải không? Đó là cách hằng số hoạt động trong JavaScript. Chúng giống như một lời hứa bạn đưa ra cho mã của mình: "Giá trị này sẽ không thay đổi, cam đoan!"
Các hằng số là các biến sau khi được gán giá trị, không thể gán lại. Chúng giống như anh chị lớn cứng đầu của biến - một khi đã quyết định, không thể thay đổi!
Declaring JavaScript Constants
Để khai báo một hằng số trong JavaScript, chúng ta sử dụng từ khóa const
. Nó đơn giản như nói, "Này JavaScript, thứ này ở đây à? Nó sẽ không thay đổi. Được rồi."
Hãy xem một số ví dụ:
const PI = 3.14159;
const DAYS_IN_WEEK = 7;
const FAVORITE_COLOR = "purple";
Trong các ví dụ này, chúng ta đã khai báo các hằng số cho hằng số toán học pi, số ngày trong một tuần và màu sắc yêu thích. Một khi được đặt, các giá trị này sẽ bị khóa lại.
Can't be Reassigned: The Immutable Nature of Constants
Bây giờ, hãy xem hằng số thể hiện màu sắc thật sự của chúng. Một khi bạn đã gán giá trị cho một hằng số, bạn không thể thay đổi nó. Đó như trying to convince a cat to take a bath - nó chỉ đơn giản là không xảy ra!
const MY_AGE = 25;
console.log(MY_AGE); // Output: 25
MY_AGE = 26; // Throws an error: Assignment to a constant variable.
Nếu bạn cố gắng gán lại giá trị cho một hằng số, JavaScript sẽ nổi giận (dưới dạng một lỗi). Nó đang nói, "Hey! Bạn đã hứa rằng điều này sẽ không thay đổi!"
Block Scope: The Playground of Constants
Các hằng số có phạm vi mà chúng ta gọi là "block scope". Hãy tưởng tượng một khối như một sân chơi 被 fenced. Các hằng số chỉ có thể chơi trong sân chơi được chỉ định của chúng.
if (true) {
const BLOCK_SCOPED = "I'm only available inside this block!";
console.log(BLOCK_SCOPED); // Output: I'm only available inside this block!
}
console.log(BLOCK_SCOPED); // Throws an error: BLOCK_SCOPED is not defined
Trong ví dụ này, BLOCK_SCOPED
giống như một đứa trẻ không được phép rời khỏi sân chơi. Nó tồn tại chỉ trong khối if
và không thể truy cập từ bên ngoài.
Constant Arrays and Objects in JavaScript: The Plot Twist
Bây giờ, hãy xem điều gì xảy ra khi chúng ta sử dụng const
với các mảng và đối tượng, cốt truyện trở nên phức tạp hơn! Liên kết hằng số là không thay đổi, nhưng nội dung của mảng hoặc đối tượng vẫn có thể thay đổi. Đó như having a constant pet - bạn không thể thay đổi việc nó là宠物 của bạn, nhưng bạn vẫn có thể dạy nó những trick mới!
const MY_PETS = ["dog", "cat", "fish"];
console.log(MY_PETS); // Output: ["dog", "cat", "fish"]
MY_PETS.push("hamster");
console.log(MY_PETS); // Output: ["dog", "cat", "fish", "hamster"]
MY_PETS = ["parrot"]; // Throws an error: Assignment to a constant variable
Trong ví dụ này, chúng ta có thể thêm vào mảng MY_PETS
, nhưng chúng ta không thể gán nó lại bằng một mảng hoàn toàn mới.
No Const Hoisting: Stay Where I Put You!
Khác với var
, const
không bị nâng cấp. Nâng cấp là như khi bạn bảo một đứa trẻ dọn phòng của chúng, và chúng nói rằng chúng sẽ làm sau - nhưng với const
, không có "sau". Bạn phải khai báo và khởi tạo một hằng số trước khi bạn sử dụng nó.
console.log(HOISTED_VAR); // Output: undefined
var HOISTED_VAR = "I'm hoisted!";
console.log(NOT_HOISTED_CONST); // Throws an error: Cannot access 'NOT_HOISTED_CONST' before initialization
const NOT_HOISTED_CONST = "I'm not hoisted!";
Difference between var, let, and const
Bây giờ, hãy so sánh ba từ khóa khai báo biến của chúng ta: var
, let
, và const
. Chúng như ba anh chị em, mỗi người có tính cách riêng:
Feature | var | let | const |
---|---|---|---|
Scope | Function scope | Block scope | Block scope |
Hoisting | Yes | No | No |
Reassignment | Yes | Yes | No |
Redeclaration | Yes | No | No |
Which should you use among var, let, and const?
Sau nhiều năm dạy JavaScript, đây là lời khuyên của tôi:
- Sử dụng
const
theo mặc định. Nó như đặt biến của bạn trong một két - an toàn và đáng tin cậy. - Sử dụng
let
khi bạn biết rằng giá trị sẽ thay đổi, như một bộ đếm trong một vòng lặp. - Tránh sử dụng
var
除非 bạn đang làm việc với mã cũ. Nó như điện thoại cũ trong ngăn kéo của bạn - nó hoạt động, nhưng bây giờ có những tùy chọn tốt hơn.
Nhớ rằng, việc chọn giữa chúng là về việc truyền đạt ý định của bạn cho các nhà phát triển khác (bao gồm cả bạn tương lai!).
Cuối cùng, các hằng số trong JavaScript là công cụ mạnh mẽ để tạo ra mã dự đoán và ít lỗi hơn. Chúng như người lớn có trách nhiệm trong phòng, giữ mọi thứ trong秩序. Khi bạn tiếp tục hành trình JavaScript của mình, bạn sẽ thấy rằng sử dụng các hằng số một cách thích hợp có thể làm cho mã của bạn sạch sẽ hơn, hiệu quả hơn và dễ hiểu hơn.
Vậy, hãy tiến lên, các padawan trẻ, và chúc may mắn với const
!
Credits: Image by storyset