Hằng số mảng JavaScript
ECMAScript 2015 (ES6)
Vào năm 2015, JavaScript đã giới thiệu một từ khóa mới quan trọng: const
.
Việc khai báo mảng bằng cách sử dụng const
đã trở thành một thông lệ:
Không thể được chỉ định lại
Một mảng được khai báo bằng const
không thể được gán lại:
Ví dụ
const cars = ["Saab", "Volvo", "BMW"];
cars = ["Toyota", "Volvo", "Audi"]; // ERROR
Hãy tự mình thử »Mảng không phải là hằng số
Từ khóa const
hơi gây hiểu nhầm.
Nó KHÔNG xác định một mảng không đổi. Nó định nghĩa một tham chiếu không đổi tới một mảng.
Vì điều này, chúng ta vẫn có thể thay đổi các phần tử của một mảng không đổi.
Các phần tử có thể được chỉ định lại
Bạn có thể thay đổi các phần tử của một mảng không đổi:
Ví dụ
// You can create a constant array:
const cars = ["Saab", "Volvo", "BMW"];
// You can change an element:
cars[0] = "Toyota";
// You can add an element:
cars.push("Audi");
Hãy tự mình thử »Hỗ trợ trình duyệt
Từ khóa const
không được hỗ trợ trong Internet Explorer 10 trở về trước.
Bảng sau xác định các phiên bản trình duyệt đầu tiên có hỗ trợ đầy đủ cho từ khóa const
:
Chrome 49 | IE 11 / Edge | Firefox 36 | Safari 10 | Opera 36 |
Mar, 2016 | Oct, 2013 | Feb, 2015 | Sep, 2016 | Mar, 2016 |
Được chỉ định khi khai báo
Các biến const
trong JavaScript phải được gán một giá trị khi chúng được khai báo:
Ý nghĩa: Một mảng được khai báo bằng const
phải được khởi tạo khi nó được khai báo.
Sử dụng const
mà không khởi tạo mảng là lỗi cú pháp:
Ví dụ
Điều này sẽ không hoạt động:
const cars;
cars = ["Saab", "Volvo", "BMW"];
Mảng được khai báo bằng var
có thể được khởi tạo bất cứ lúc nào.
Bạn thậm chí có thể sử dụng mảng trước khi nó được khai báo:
Phạm vi khối Const
Một mảng được khai báo bằng const
có Block Scope .
Một mảng được khai báo trong một khối không giống với một mảng được khai báo bên ngoài khối:
Ví dụ
const cars = ["Saab", "Volvo", "BMW"];
// Here cars[0] is "Saab"
{
const cars = ["Toyota", "Volvo", "BMW"];
// Here cars[0] is "Toyota"
}
// Here cars[0] is "Saab"
Hãy tự mình thử » Một mảng được khai báo bằng var
không có phạm vi khối:
Ví dụ
var cars = ["Saab", "Volvo", "BMW"];
// Here cars[0] is "Saab"
{
var cars = ["Toyota", "Volvo", "BMW"];
// Here cars[0] is "Toyota"
}
// Here cars[0] is "Toyota"
Hãy tự mình thử »Bạn có thể tìm hiểu thêm về Phạm vi khối trong chương: Phạm vi JavaScript .
Khai báo lại mảng
Việc khai báo lại một mảng được khai báo bằng var
được phép ở bất kỳ đâu trong chương trình:
Ví dụ
var cars = ["Volvo", "BMW"]; // Allowed
var cars = ["Toyota", "BMW"]; // Allowed
cars = ["Volvo", "Saab"]; // Allowed
Không được phép khai báo lại hoặc gán lại một mảng cho const
, trong cùng một phạm vi hoặc trong cùng một khối:
Ví dụ
var cars = ["Volvo", "BMW"]; // Allowed
const cars = ["Volvo", "BMW"]; // Not allowed
{
var cars = ["Volvo", "BMW"]; // Allowed
const cars = ["Volvo", "BMW"]; // Not allowed
}
Không được phép khai báo lại hoặc gán lại một mảng const
hiện có, trong cùng một phạm vi hoặc trong cùng một khối:
Ví dụ
const cars = ["Volvo", "BMW"]; // Allowed
const cars = ["Volvo", "BMW"]; // Not allowed
var cars = ["Volvo", "BMW"]; // Not allowed
cars = ["Volvo", "BMW"]; // Not allowed
{
const cars = ["Volvo", "BMW"]; // Allowed
const cars = ["Volvo", "BMW"]; // Not allowed
var cars = ["Volvo", "BMW"]; // Not allowed
cars = ["Volvo", "BMW"]; // Not allowed
}
Được phép khai báo lại một mảng với const
, trong phạm vi khác hoặc trong khối khác:
Ví dụ
const cars = ["Volvo", "BMW"]; // Allowed
{
const cars = ["Volvo", "BMW"]; // Allowed
}
{
const cars = ["Volvo", "BMW"]; // Allowed
}
Tham chiếu mảng hoàn chỉnh
Để có tài liệu tham khảo Mảng đầy đủ, hãy truy cập:
Tham chiếu mảng JavaScript hoàn chỉnh .
Tham chiếu chứa các mô tả và ví dụ về tất cả các thuộc tính và phương thức của Mảng.