Chúng ta đã thảo luận về cách khai báo biến sử dụng từ khóa const.
Đây cũng chính là hằng trong Javascript. Các biến được xác định bằng const không thể khai báo lại, không thể gán lại giá trị. Nói cách khác, đó là các hằng. Ví dụ: gọi PI là số Pi trong toán học, có giá trị không đổi là 3.141592653589793. Khi đó, PI gọi là hằng số.Chúng ta thử cố gắng gán lại giá trị một biến được khai báo bằng từ khóa const. Chúng ta sử dụng try...catch {} để xử lý ngoại lệ, tương tự như trong Python.
<!DOCTYPE html>
<html>
<body>
<h2>JavaScript const</h2>
<p id="datviet"></p>
<script>
try {
const PI = 3.141592653589793;
PI = 3.14;
}
catch (err) {
document.getElementById("datviet").innerHTML = err;
}
</script>
</body>
</html>
Sử dụng JSFiddle để thực thi
Lưu ý: Các biến const trong JavaScript phải được gán một giá trị khi chúng được khai báo.
Khai báo màu đỏ bên dưới sai và làm cho Javascript "không thèm" làm gì!
<!DOCTYPE html>
<html>
<body>
<h2>JavaScript const</h2>
<p id="datviet"></p>
<script>
try {
const PI = 3.141592653589793;
PI = 3.14;
}
catch (err) {
document.getElementById("datviet").innerHTML = err;
}
const PI2;
PI2 = 3.14159265359;
</script>
</body>
</html>
Bấm Run để thực thi
Lưu ý 2: Từ khóa const có thể gây hiểu nhầm. Nó không xác định một giá trị không đổi. Nó chỉ định nghĩa một tham chiếu không đổi đến một giá trị.
Vì điều này chúng ta KHÔNG thể:
- Gán lại một giá trị không đổi
- Gán lại một mảng không đổi
- Gán lại một đối tượng không đổi
Nhưng chúng ta CÓ THỂ:
- Thay đổi các phần tử của mảng không đổi
- Thay đổi thuộc tính của đối tượng không đổi
Ví dụ 1:
Khai báo sau có lỗi vì const PI đã định nghĩa một tham chiếu không đổi tới giá trị 3.141592653589793; Chúng ta không thể gán lại giá trị 3.14 cho biến PI.
const PI = 3.141592653589793;
PI = 3.14;
Ví dụ 2:
Chúng ta sẽ khai báo một mảng không đổi và thử gán lại giá trị (Chúng ta xóa bỏ đoạn code lỗi bên trên)
<!DOCTYPE html>
<html>
<body>
<h2>JavaScript const</h2>
<p id="datviet"></p>
<p id="datviet2"></p>
<script>
try {
const PI = 3.141592653589793;
PI = 3.14;
}
catch (err) {
document.getElementById("datviet").innerHTML = err;
}
try {
const cars = ["Saab", "Volvo", "BMW"];
cars = ["Toyota", "Volvo", "Audi"];
}
catch (err) {
document.getElementById("datviet2").innerHTML = err;
}
</script>
</body>
</html>
Bấm Run để thực thi
Tuy nhiên nếu chúng ta thay đổi hay thêm phần tử vào mảng không đổi thì không có vấn đề gì xảy ra.
Ví dụ 3:
<!DOCTYPE html>
<html>
<body>
<h2>JavaScript const</h2>
<p id="datviet"></p>
<p id="datviet2"></p>
<p id="datviet3"></p>
<script>
try {
const PI = 3.141592653589793;
PI = 3.14;
}
catch (err) {
document.getElementById("datviet").innerHTML = err;
}
try {
const cars = ["Saab", "Volvo", "BMW"];
cars = ["Toyota", "Volvo", "Audi"];
}
catch (err) {
document.getElementById("datviet2").innerHTML = err;
}
const cars2 = ["Saab", "Volvo", "BMW"];
cars2[0] = "Toyota";
cars2.push("Audi");
document.getElementById("datviet3").innerHTML = cars2;
</script>
</body>
</html>
Bấm Run để thực thi
Không có nhận xét nào:
Đăng nhận xét