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:

javascriptlet 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ň:

javascriptlet 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.

Задание 1

Ýeterlik uly ölçegli setir dörediň we ony ýerdaş ammara ýazmaga synanyşyň. Konsolda ýalňyşlyk boljakdygyna göz ýetiriň.

Задание 2

Nädogry JSON-y çözmäge synanyşyň. Konsolda ýalňyşlyk boljakdygyna göz ýetiriň.