Const trong JavaScript
- Trang trước JS Let
- Trang tiếp theo Toán tử JS
ECMAScript 2015
ES2015 đã giới thiệu hai từ khóa mới quan trọng của JavaScript:let
Và const
.
Bằng cách const
Biến được định nghĩa let
Biến được định nghĩa tương tự, nhưng không thể gán lại giá trị:
Mô hình
const PI = 3.141592653589793; PI = 3.14; // Sẽ gặp lỗi PI = PI + 10; // Sẽ gặp lỗi
Khu vực hoạt động của khối
TrongKhu vực hoạt động của khốiTrong const
Biến được khai báo let
Biến tương tự.
Trong ví dụ này, x được khai báo trong khối, khác với x được khai báo ngoài khối:
Mô hình
var x = 10; // Ở đây, x là 10 { const x = 6; // Ở đây, x là 6 } // Ở đây, x là 10
Bạn có thể xem lại chương trước Let trong JavaScript Tôi học thêm về khu vực hoạt động của khối.
khi khai báo
JavaScript const
Biến phải được gán giá trị khi khai báo:
Sai
const PI; PI = 3.14159265359;
Đúng
const PI = 3.14159265359;
Không phải là hằng số thực sự
Từ khóa const
Có tính误导.
Nó không định nghĩa giá trị hằng số. Nó định nghĩa một tham chiếu hằng số đến giá trị.
Do đó, chúng ta không thể thay đổi giá trị nguyên thủy của hằng số, nhưng chúng ta có thể thay đổi thuộc tính của đối tượng hằng số.
Giá trị nguyên thủy
Nếu chúng ta gán một giá trị nguyên thủy cho hằng số, chúng ta không thể thay đổi giá trị nguyên thủy:
Mô hình
const PI = 3.141592653589793; PI = 3.14; // Sẽ gặp lỗi PI = PI + 10; // Sẽ gặp lỗi
Đối tượng hằng số có thể thay đổi
Bạn có thể thay đổi thuộc tính của đối tượng hằng số:
Mô hình
// Bạn có thể tạo đối tượng const: const car = {type:"porsche", model:"911", color:"Black"}; // Bạn có thể thay đổi thuộc tính: car.color = "White"; // Bạn có thể thêm thuộc tính: car.owner = "Bill";
Nhưng bạn không thể gán lại giá trị cho đối tượng thường số:
Mô hình
const car = {type:"porsche", model:"911", color:"Black"}; car = {type:"Volvo", model:"XC60", color:"White"}; // LỖI
Mảng thường số có thể thay đổi
Bạn có thể thay đổi phần tử của mảng thường số:
Mô hình
// Bạn có thể tạo mảng thường số: const cars = ["Audi", "BMW", "porsche"]; // Bạn có thể thay đổi phần tử: cars[0] = "Honda"; // Bạn có thể thêm phần tử: cars.push("Volvo");
Nhưng bạn không thể gán lại giá trị cho mảng thường số:
Mô hình
const cars = ["Audi", "BMW", "porsche"]; cars = ["Honda", "Toyota", "Volvo"]; // LỖI
Hỗ trợ trình duyệt
Internet Explorer 10 hoặc các phiên bản trước không hỗ trợ const
Từ khóa.
Bảng dưới đây định nghĩa các phiên bản trình duyệt hỗ trợ hoàn toàn từ khóa const:
Chrome 49 | IE / Edge 11 | Firefox 36 | Safari 10 | Opera 36 |
Tháng 3 năm 2016 | Tháng 10 năm 2013 | Tháng 2 năm 2015 | Tháng 9 năm 2016 | Tháng 3 năm 2016 |
Khởi tạo lại
Được phép khởi tạo lại JavaScript ở bất kỳ vị trí nào trong chương trình var
Biến:
Mô hình
var x = 2; // Được phép var x = 3; // Được phép x = 4; // Được phép
Trong cùng phạm vi hoặc khối, không được phép khởi tạo lại biến đã có: var
hoặc let
Khởi tạo lại hoặc gán lại giá trị cho biến const
:
Mô hình
var x = 2; // Được phép const x = 2; // Không được phép { let x = 2; // Được phép const x = 2; // Không được phép }
Trong cùng phạm vi hoặc khối, không được phép khai báo lại hoặc gán giá trị cho biến const đã có:
Mô hình
const x = 2; // Cho phép 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; // Cho phép const x = 3; // Không cho phép x = 3; // Không cho phép var x = 3; // Không cho phép let x = 3; // Không cho phép }
Định lại trong một phạm vi hoặc khối khác const
Là cho phép:
Mô hình
const x = 2; // Cho phép { const x = 3; // Cho phép } { const x = 4; // Cho phép }
Nâng cấp
Bằng cách var
Biến được định nghĩa sẽNâng cấpđến đầu. Nếu bạn không hiểu gì về nâng cấp (Hoisting), hãy học phần nâng cấp này.
Bạn có thể sử dụng biến var trước khi khai báo nó:
Mô hình
carName = "Volvo"; // Bạn có thể sử dụng carName tại đây var carName;
Bằng cách const
Biến được định nghĩa sẽ không được nâng cấp lên đầu.
const
Biến không thể sử dụng trước khi khai báo:
Mô hình
carName = "Volvo"; // Bạn không thể sử dụng carName tại đây const carName = "Volvo";
- Trang trước JS Let
- Trang tiếp theo Toán tử JS