⊗jsSpExcDAE 148 of 294 menu

JavaScript හි data- ගුණාංග සමඟ උදාහරණ අවස්ථාවක්

පිටුව පූරණය වන විට සේවාදායකය විසින් HTML කේතයක් සාදන බවට සිතමු, එහි නිෂ්පාදනයේ නම, මිල හා මිලදී ගත් ප්‍රමාණය ගබඩා කර ඇත:

<div id="product" data-product="ඇපල්" data-price="1000" data-amount="5"></div>

නිෂ්පාදනය සමඟ අංගයකට සම්බන්ධකයක් ලබා ගන්නා සහ සම්පූර්ණ භාණ්ඩ වටිනාකම සොයා ගන්නා කාර්යයක් කරමු (ප්‍රමාණයෙන් ගුණ කළ මිල):

function getCost(elem) { return elem.dataset.price * elem.dataset.amount; }

අපගේ නිෂ්පාදනයේ වටිනාකම සොයා ගනිමු:

let product = document.querySelector('#product'); let cost = getCost(product); alert(cost);

දැන් පහත සඳහන් තත්වය උපකල්පනය කරන්න: යම් අසාර්ථකත්වයක් හේතුවෙන් සේවාදායකය අපට එවූ භාණ්ඩයක මිල හෝ ප්‍රමාණය නොමැති විය හැකිය (හෝ දෙකම එකවර), උදාහරණයක් ලෙස, මේ ආකාරයෙන්:

<div id="product" data-product="ඇපල්" data-price="1000"></div>

දැන් භාණ්ඩයේ වටිනාකම ගණනය කිරීමට උත්සාහ කළහොත්, ප්‍රතිඵලය තිරය මත NaN ලෙස පෙන්වනු ඇත. එය ඉතා තොරතුරු සහිත නොවන බව ඔබ එකඟ වනු ඇත.

එබැවින්, අවශ්‍ය ගුණාංග නොමැතිවීමෙන් ආරක්ෂා වීමට අපට යම් ආකාරයකින් හැකි විය යුතුය. මෙය කළ හැක්කේ ක්‍රම දෙකකිනි. පළමු ක්‍රමය නම්, මෙය සාමාන්‍ය අංගයක් බව පැවසීමයි සහ සරලව if පරීක්ෂා කිරීම් මගින් අවශ්‍ය ගුණාංග පවතින බවට වග බලා ගැනීම:

function getCost(elem) { if (elem.dataset.price !== undefined && elem.dataset.amount !== undefined) { return elem.dataset.price * elem.dataset.amount; } else { return 0; // යමක් ආපසු දෙන්න, උදාහරණයක් ලෙස, 0 හෝ null හෝ false } }

දෙවන විකල්පය නම්, data-price හෝ data-amount ගුණාංගය නොමැති වීම ව්‍යතිරේක තත්වයක් ලෙස පැවසීමයි. මෙම අවස්ථාවේ දී අපි ව්‍යතිරේකයක් ඉවත දමන්නෙමු:

function getCost(elem) { if (elem.dataset.price !== undefined && elem.dataset.amount !== undefined) { return elem.dataset.price * elem.dataset.amount; } else { throw { name: 'ProductCostError', message: 'නිෂ්පාදනය සඳහා මිල හෝ ප්‍රමාණය නොමැත' }; } }

කුමන විකල්ප දෙකෙන් කුමන එක මෙහි යෙදිය යුතුද යන්න - එය ක්‍රමලේඛකයාගේ තේරීමකි. ඔහුට ගැටලුව ස්ක්‍රිප්ට් එකේ සාමාන්‍ය ක්‍රියාකාරීත්වයක් හෝ ව්‍යතිරේක තත්වයක් ලෙස සැලකිය හැකිය.

අපි තීරණය කර ඇත්තේ තත්වය ව්‍යතිරේකයක් ලෙස බවයි. එවිට භාණ්ඩයේ වටිනාකම ලබා ගැනීමේ කේතය මේ ආකාරයෙන් පෙනෙනු ඇත:

let product = document.querySelector('#product'); try { let cost = getCost(product); alert(cost); } catch (error) { // ව්‍යතිරේකයට යම් ආකාරයකින් ප්‍රතික්‍රියා කරන්න }

getCost ශ්‍රිතය ව්‍යතිරේක වර්ග දෙකක් ඉවත දමන ආකාරයට මගේ කේතය ප්‍රතිසංස්කරණය කරන්න: මිල නොමැතිවීම සහ ප්‍රමාණය නොමැතිවීම. මෙම ව්‍යතිරේකවල නම් සඳහා හොඳින් සිතන්න. catch ගොනුව තුළ, විවිධ වර්ගවල ව්‍යතිරේක සඳහා විවිධ දෝෂ පණිවිඩ පෙන්වන්න.

සිංහල
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
අපි වෙබ් අඩවිය ක්‍රියාත්මක කිරීම, විශ්ලේෂණය සහ පුද්ගලීකරණය සඳහා කුකී භාවිතා කරමු. දත්ත සැකසීම සිදුකරනු ලබන්නේ ගෝපනීයතා ප්‍රතිපත්තිය අනුව ය.
සියල්ල පිළිගන්න කොන්දේසි ප්‍රතික්ෂේප කරන්න