Памылка забароны пераходу па спасылцы ў JavaScript
Няхай у нас ёсць спасылка:
<a href="">link</a>
Атрымаем нашу спасылку ў зменную:
let link = document.querySelector('a');
Прывяжам да нашай спасылкі апрацоўшчык кліку. Адмянім пры гэтым пераход па спасылцы, каб пазбегнуць перазагрузкі старонкі:
link.addEventListener('click', function(event) {
console.log(this.textContent);
event.preventDefault();
});
Здаецца, што мы цалкам абяспечылі сябе ад нечаканай паводзіны. На самай справе гэта не так. Справа ў тым, што пры ўзнікненні сінтаксічнай памылкі JavaScript код проста не будзе выкананы, блакіроўка спасылкі не спрацуе, і ажыццявіцца пераход па ёй.
У гэтым выпадку мы не ўбачым ні выніку выканання кода, ні памылкі ў кансолі, бо старонка перазагрузіцца. Давайце спецыяльна зробім памылку ў кодзе і пераканаемся на практыцы:
link.addEventListener('click', function(event) {
thiss.textContent = 'text'; // сінтаксічная памылка
event.preventDefault();
});
Такая праблема мае характэрны прыкмета: калі глядзець у кансоль у момант кліку на спасылку, мы на імгненне ўбачым чырвоную памылку ў кансолі, якая амаль адразу жа знікне.
Вядома ж, прачытаць тэкст памылкі мы
не паспеем, што істотна ўскладняе
яе пошук. Ёсць, аднак, хітры прыём. Трэба
ў href спасылкі паставіць рашотку.
У гэтым выпадку пераходу па спасылцы
не здарыцца і мы ўбачым выкінутую
ў кансоль памылку:
<a href="#">link</a>