JavaScript-da ýüze çykan ýagdaýlaryň görnüşleri
JavaScript-da hasaba alynýan ýagdaýlar gaty az. Birinjiden, diňe sebäbi ýüze çykmak üçin gaty az ýer bar.
Ikinjiden, sebäbi diliň özi "hemme zady bagyşlaýar": ol köp zatlara göz ýummaklyk edýär, mysal üçin, nola bölmek ýa-da nädogry HTML koda. Resimi ýüklejek bolan ýeriňizi nädogry görkezseňiz hem, JavaScript size bagyşlar we muny hasaba almaz ýagdaý.
Emma, hasaba alynýan ýagdaýlar bar. Biz iki iň ýönekeýini çözüp, olaryň mysalynda JavaScript-da hasaba alynýan ýagdaýlar bilen işlemegi öwreneris.
Ilkinji hasaba alynýan ýagdaý, nädogry JSON-y çözmek isleýänimizde ýüze çykýar:
let data = JSON.parse('{1,2,3,4,5}'); // bu json nädogry
Ikinji hasaba alynýan ýagdaý bolsa, sahypamyza aýrylan ýerdaş ammary doly bolanda ýüze çykýar
(5 megabaitdan köp). Geliň suny ýasama ýagdaýda
çaýyralyň:
let str = '';
for (let i = 1; i <= 6 * 10 ** 6; i++) { // 5 mb-dan köp setir döredýär
str += '+';
}
localStorage.setItem('key', str); // ammara ýazmaga synanyşýarys
JavaScript bu ýaly üýtgeşik ýagdaýlara nähili jogap berýär? Ol diňe konsolda ýalňyşlygy görkezýär we skriptiň mundan beýläk işlemezligini bes edýär.
Programmistler hökmünde biziň wezipesi,
şeýle ýagdaýy tutmak we birneme
onuny öňüni almak, programmanyň doly
işini bes etmegine rugsat bermezlikdir. Bu üçin
ýörite konstruksiýa try-catch bar,
ony indiki sapaklarda çözeris.
Ýeterlik uly ölçegli setir dörediň we ony ýerdaş ammara ýazmaga synanyşyň. Konsolda ýalňyşlyk boljakdygyna göz ýetiriň.
Nädogry JSON-y çözmäge synanyşyň. Konsolda ýalňyşlyk boljakdygyna göz ýetiriň.