JavaScript'те Кыргыштыктарды ыргытуу
Мурунку сабактарда биз JavaScript кандайдыр бир маселелер болгондо кыргыштык ыргыта турган эки жерди үйрөндүк.
Бирок, сиздин долбооруңузда сиз үчүн кыргыштык болуп эсептелген, бирок JavaScript үчүн эмес башка абалдар да болушу мүмкүн. Мындай учурда биз өзүбүздүн, колдонуучунун кыргыштыктарын түзө алабыз жана ыргыта алабыз.
Бул үчүн керек синтаксисти карап көрөлү. Адегенде кыргыштыкты new Error командасы менен түзүшүңүз керек, параметр катары кыргыштыктын текстин берүү менен:
new Error('кыргыштыктын тексти');
Андан кийин бул кыргыштыкты throw командасы менен ыргытуу керек:
throw new Error('кыргыштыктын тексти');
Кыргыштыкты ыргытуу JavaScript'ти кыргыштык абал болду деп эсептөөгө мажбурлайт. Бул дегенди билдирет, мындай кыргыштыкты try-catch конструкциясы менен кармап, керектүү жол менен иштете аласыз.
Кантип колдонуларын мисал аркылуу көрөлү. Бизде бир санды экинчи санга бөлүүчү функция болсун:
function div(a, b) {
return a / b;
}
Нөлгө бөлүү тыюу салынган деп эсептеп, муну жасаганы аракет кылуу кыргыштык абалды пайда кылышы керек дейли. Бул үчүн функцияда 0гө бөлүү аракети бар-жок экенин текшеребиз. Жок болсо - бөлөбүз, бар болсо - кыргыштык ыргытабыз:
function div(a, b) {
if (b !== 0) {
return a / b;
} else {
throw new Error('нөлгө бөлүү катасы');
}
}
Адегенде кыргыштыкты кармабастан, жөн эле 0гө бөлүүнү аракет кылып көрөлү:
alert( div(3, 0) );
Мындай учурда скриптти иштетүү үзүлөт жана консолдо 'нөлгө бөлүү катасы' тексти менен ката пайда болот (текшерип көрүңүз). Эми биз катабызды кармап, аны кандайдыр бир жол менен иштетели:
try {
alert( div(3, 0) );
} catch (error) {
alert('сиз нөлгө бөлүүгө аракет кылып жатасыз, бул тыюу салынган');
}
JavaScript'те терс сандан тамыр алууга аракет кылганда кыргыштык ыргытылбайт:
let result = Math.sqrt(-1);
console.log(result); // NaN чыгарат
Сандан тамыр алуучу жана ошону менен бирге терс сандан тамыр алынып жатканда кыргыштык ыргыта турган өз функцияңызды жазыңыз.