Trong vòng for biến sẽ redeclare hay tạo biến mới trong bộ nhớ?


em chào mọi người, em được biết let không được khai báo lại, ở đoạn code này, có phải biến let khi for sẽ bị khai báo lại 10 lần không
thanks mọi người

Có, nó bị khai báo lại từ đầu

1 Like

ý bạn là nó sẽ xóa biến let x=2 cũ trong bộ nhớ, và khai báo lại?

câu lệnh trong vòng for mỗi khi i tăng là câu lệnh mới hoàn toàn đó bạn, mấy giá trị x cũ hình như xóa sạch hết rồi

Không chắc chắn 100%, tuy nhiên nếu xét theo logic mà mình đã được học thì trường hợp này sẽ tạo biến mới trong bộ nhớ.

Cụ thể, một variable gồm có 2 phần là con trỏ (thể hiện địa chỉ lưu variable trong RAM) và giá trị.
Ở mỗi lần lặp, một variable khác được cấp phát, variable này tuy có cùng tên là x, nhưng địa chỉ trong RAM của nó không trùng với địa chỉ trong RAM của variable x ở lần lặp trước, đây là một variable hoàn toàn mới.

Các variable x cũ, nếu không còn đối tượng nào tham chiếu tới nó nữa, sẽ trở thành rác.
Việc thu dọn rác là do Garbage Collector đảm nhận.

Nếu được, có thể cho biết mục đích của bạn khi hỏi câu này?

6 Likes
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?