Hướng dẫn fix lỗi Uncaught TypeError: Assignment to constant variable trong Javascript

Uncaught TypeError: Assignment to constant variable là một lỗi rất cơ bản trong Javascript, thường gặp ở những coder mới tiếp xúc với Javascript.

Hiện tượng

  • Kịch bản (code) Javascript không hoạt động hoặc bị ngắt quãng giữa chừng
  • Javascript Console báo lỗi: Uncaught TypeError: Assignment to constant variable.

Nguyên nhân

Bạn đang cố ý (hoặc vô ý) làm thay đổi dữ liệu của Hằng (Constant) trong kịch bản Javascript. Hãy luôn nhớ rằng, bạn HOÀN TOÀN KHÔNG THỂ thay đổi dữ liệu (reassign) của Hằng kể từ khi bạn gán giá trị đầu tiên (assign) cho nó. Xem lại bài Biến (Variable) và Hằng (Constant) trong Javascript.

Cách khắc phục (fix)

Bước 1. Xác định vị trí Statement làm thay đổi giá trị của Hằng (Constant)

Trên giao diện Javascript Console của trình duyệt web, bạn click vào link báo lỗi Uncaught TypeError: Assignment to constant variable (nằm ở bên phải dòng lỗi).

Bước 2. Xử lý tuỳ theo tình huống

Tình huống 1: Kịch bản Javascript mà bạn đang muốn viết buộc bạn phải thay đổi giá trị của Hằng

Hướng xử lý: Dùng Biến (variable) thay vì Hằng. Biến là thành phần phù hợp để có thể chứa dữ liệu và dữ liệu đó có thể thay đổi liên tục trong suốt kịch bản Javascript. Xem lại bài Biến (Variable) và Hằng (Constant) trong Javascript.

Ví dụ:

Trước khi fix Sau khi fix

...
const KEY = '123'; // Dùng hằng
KEY = document.getElementById("key-input").value;
...

...
var KEY = '123'; // Dùng biến
KEY = document.getElementById("key-input").value;
...
Tình huống 2: Việc dữ liệu của Hằng (Constant) bị thay đổi là do bạn vô ý. Việc thay đổi là không cần thiết.

Hướng xử lý: Xoá hoặc viết lại Statement đó để dữ liệu của Hằng không bị thay đổi

Và chúng ta cũng đã đi qua mục cuối cùng trong bài hướng dẫn rồi. Nếu bạn có bất kỳ thắc mắc nào, hay không thực hiện được bước nào, hãy để lại bình luận bên dưới nhé. Nếu bạn cảm thấy bài viết hay và hữu ích, hãy để lại 1 like, share, đánh giá để ủng hộ đội ngũ biên tập của hoccode.org nhé!

Chúc các bạn thực hiện thành công!

Đăng ký để nhận được thông báo mỗi khi có bài viết mới!