const không được hỗ trợ bởi ECMAScript. Vì vậy, sau khi bạn chỉ định chế độ nghiêm ngặt, bạn nhận được lỗi cú pháp. Bạn cần sử dụng var thay vì const nếu bạn muốn mã của mình tương thích với tất cả các trình duyệt. Tôi biết, không phải là giải pháp lý tưởng, nhưng nó là những gì nó được. Có nhiều cách để tạo các thuộc tính chỉ đọc trong JavaScript (xem Các thuộc tính chỉ đọc có thể được triển khai trong JavaScript thuần không? ) Nhưng tôi nghĩ rằng nó có thể quá mức tùy thuộc vào kịch bản của bạn.
Dưới đây là ghi chú tương thích trình duyệt từ MDN :
Tính tương thích của trình duyệt web
Việc triển khai const hiện tại là một tiện ích mở rộng dành riêng cho Mozilla và không phải là một phần của ECMAScript 5. Nó được hỗ trợ trong Firefox & Chrome (V8). Kể từ Safari 5.1.7 và Opera 12.00, nếu bạn xác định một biến có const trong các trình duyệt này, bạn vẫn có thể thay đổi giá trị của nó sau này. Nó không được hỗ trợ trong Internet Explorer 6-10, nhưng được bao gồm trong Internet Explorer 11. Từ khóa const hiện khai báo hằng số trong phạm vi hàm (như các biến được khai báo với var).
Firefox, ít nhất là từ phiên bản 13, ném TypeError nếu bạn tái định nghĩa một hằng số. Không có trình duyệt chính nào tạo ra bất kỳ thông báo hoặc lỗi nào nếu bạn gán giá trị khác cho hằng số. Giá trị trả về của một thao tác như vậy là giá trị mới được chỉ định, nhưng việc gán lại chỉ không thành công trong Firefox và Chrome (ít nhất là từ phiên bản 20).
const sẽ được định nghĩa bởi ECMAScript 6, nhưng với các ngữ nghĩa khác nhau. Tương tự như các biến được khai báo bằng câu lệnh let, các hằng số được khai báo với const sẽ nằm trong phạm vi khối.