Khai báo biến bằng var trong JS là thứ khiến mình điên đầu mấy hôm nay?
Thật sự là phát điên với vụ này
Chuyện là mình đang trong giai đoạn làm bài tập môn Công nghệ web an toàn, bài tập lần này đại loại là tạo thêm 1 mục trên thanh điều hướng ở bài tập trước đó để dẫn đến 1 trang chứa danh sách các ví dụ, các ví dụ này là các cú pháp JS thôi, và khi nhấn vào các link ví dụ nhỏ thì ví dụ đó vẫn sẽ hiện ra trên chung 1 iframe như html cha của nó.
Vấn đề là việc thực hiện truy cập vào những ví dụ nhỏ từ trang chủ đầu đã oke rồi nhưng mà khi đang ở trang thái trong một ví dụ nhỏ nào đó, nếu muốn nhấn vào một mục nào đó trên thanh điều hướng thì nội dung mục đó sẽ nhảy sang trang mới .-.
Quá trình ấy như thế này:
Như trên hình, trước khi truy cập vào ví dụ “1.Sử dụng biến” trong mục “2.1 Example 2”, mình có thể truy cập thoải mái các mục trên thanh điều hướng, nhưng sau khi truy cập vào ví dụ “1.Sử dụng biến” trong mục “2.1 Example 2” rồi thì việc truy cập lại các mục trên thanh điều hướng sẽ khiến nội dung nhảy sang tab mới
Ban đầu mình chưa phát hiện rõ ràng ra việc lỗi chỉ xảy ra tại ví dụ “1.Sử dụng biến”, thấy hiện tượng thì chỉ nghĩ là có khi nào việc liên kết trong thẻ a có vấn đề
Sau nhiều ngày lần mò, mình đã vô tình phát hiện ra: Với các ví dụ khác, khác ví dụ “1.Sử dụng biến” thì việc truy cập lại vẫn hoàn toàn bình thường, không hề xảy ra hiện tượng nhảy sang tab mới, do đó mới khoanh vùng được lỗi chỉ xảy ra tại ví dụ “1.Sử dụng biến” và cuối cùng là vì cái của nợ này -.-
=> Cuối cùng, chỉ việc thay đổi việc khai báo từ var
thành let
là mọi chuyện lại đâu vào đó
Tại sao lại khai báo biến bằng var
? Vì đây là ví dụ mẫu có sẵn trong file bài tập, yêu cầu chỉ cần cop vào và để đó thôi nên mình cứ nghĩ là sẽ không có vấn đề gì.
Mình cũng có tìm hiểu những vẫn chưa tìm ra được lời giải đáp tại sao khai báo biến bằng var
lại gây ra hiện tượng như thế????. Mà chắc kệ để đó đã, chuyển sang bài khác không lại mất thời gian. Mong rằng nếu có ai đó đọc được bài này, biết được câu trả lời cho vụ bên trên thì giải đáp giúp mình nhé :D
*mème một tí :>