ھەرقانداق بىر پىروگىرامما تىلىغا ئوخشاشلا JavaScriptk تىمۇ ئاددى ماتىماتىكىلىق ھېسابلاش ئۇسسۇللىرى ۋە فورمۇلالار تەمىنلەنگەن. يەنى Math() ئوبىكتى ئىچىدىكى تەييار ئۇسسۇللار ئارقىلىق ئادەتتىكى ھېسابلاشلارنى بىمالال ئېلىپ بارالايمىز، شۇنداقلا بۇنىڭ ئۈنۈمى JS بىلەن ئۆزىمىز يازغان ئىپادىلەردىن كۆپ يۇقىرى بولىدۇ. ئويلاپ باقساق JS نى ئىشىتىش جەريانىدا ئۇنىڭ Math() ئوبىكتى تەمىنلىگەن ئۇسسۇللارنى بىلىپ - بىلمەي دائىملا ئىشلىتىمىز. مەسىلەن: ئىختىيارىي سان ھاسىللاش، ئونلۇق كەسىر سانلارنى پۈتۈنلەپ ئېلىش دېگەندەك... تۆۋەندە بۇ ئوبىكتنى قىيما قىلىپ چانايمىز(چاقچاق)!
مەزكۇر ئوبىكتنىڭ max() ۋە min() ئۇسسۇلى
بۇلار Math() ئوبىكتىنىڭ كۆپ ئىشلىتىلىدىغان ھېسابلاش ئۇسسۇللىرىدىن بولۇپ، ئادەتتە بىر گۇرۇپپا سانلىق مىقدار ئىچىدىن ئەڭ چوڭ ياكى ئەڭ كىچىك قىممەتنى تېپىپ چىقىشتا قوللىنىلىدۇ. بۇ ھەر ئىككى ئۇسسۇل خالىغان ئۇزۇنلۇقتىكى سانلىق مىقدار گۇرۇپپىسى پارامىتىرىنى قوبۇللايدۇ. مەسىلەن ئالايلۇق:
var max=Math.max(3,4,5,6,8,9,56,7,8,87); alert(max); //87 var min =Math.min(3,4,5,6,8,9,56,7,8,87); alert(min); //3
يۇقىرىقى سان گۇرۇپپىسىنىڭ ئىچىدە ئەڭ چوڭ سان 87 ۋە ئەڭ كىچىك سان 3 ئىدى. Math() ئوبىكتىنىڭ مۇناسىۋەتلىك ئۇسسۇللىرى ئارقىلىق ئۇلارنى ناھايىتى ئاسانلا تېپىپ ئالغىلى بولىدۇ. بۇ خىل ئۇسسۇلدا if جۈملىسى ئارقىلىق تاپقانغا قارىغاندا بىكار ئىزدەشلەردىن خالىي بولىمىز. دېمەك، مىقدارلارنى بىر - بىرلەپ ئىزدىگەندىن ئۈنۈملۈك.
مەزكۇر ئوبىكتنىڭ سان پۈتۈنلەش ئۇسسۇللىرى
ئادەتتە ئونلۇق كەسىر سانلارن پۈتۈنلەپ ئېلىشنىڭ ئۇسسۇللىرى ھەرخىل. بىراق ئۈنۈمى ئەڭ قالتىس بولىدىغىنى يەنىلا Math() ئوبىكتىدا تەمىنلەنگەن مۇنۇ ئۈچ ئۇسسۇلدىن ئىبارەت:
1. Math.ceil()
ئۇسسۇلى ==> يۇقىرىغا قاراپ پۈتۈنلەيدۇ. يەنى ئونلۇق كەسىر چېكىتى كەينىدىكى سانلار نۆلدىن يۇقىرى بولسىلا ئالدىنقى خانىگە پۈتۈنلەپ بېرىدۇ.
2. Math.floor()
ئۇسسۇلى ==> تۆۋىنىگە قاراپ پۈتۈنلەيدۇ. يەنى ئونلۇق كەسىر چېكىتى كەينىدىكى سانلار 9 ۋە ئۇنىڭدىن كىچىك بولسىلا قالدۇرىۋىتىدۇ.
3. Math.round()
ئۇسسۇلى ==> ئۆلچەملىك تۆتنى قالدۇرۇپ، بەشنى پۈتۈنلەپ ئېلىش بويىچە پۈتۈنلەيدۇ.
مەسىلەنلەر:
// ceil() ussulida putunlesh alert(Math.ceil(24.9)); //25 alert(Math.ceil(24.5)); //25 alert(Math.ceil(24.1)); //25 // floor() ussulida putunlesh alert(Math.floor(24.9)); //24 alert(Math.floor(24.5)); //24 alert(Math.floor(24.1)); //24 // round() ussulida putunlesh alert(Math.round(24.9)); //25 alert(Math.round(24.5)); //25 alert(Math.round(24.1)); //24
Random() ئىختىيارىي سان ھاسىللاش ئۇسسۇلى
دېمىسەممۇ بۇ random() نى ئەڭ كۆپ ئىشلىتىمىز. بۇ ئۇسسۇل ئەمەلىيەتتە 0بىلەن 1 ئارلىقىدىكى خالىغان بىر قىممەتنى قايتۇرىدۇ. بەزى ۋاقىتلاردا بۇ ئۇسسۇل ھەقىقەتەنمۇ قولايلىق. مەسىلەن: چەك تارتىش، ئختىيارىي تەرتىپكە تىزىش دېگەندەك. ئەلۋەتتە ئىشلىتىشىمۇ ئىنتايىن ئاسان. يەنى
qimmet=Math.floor(Math.random()* mumkin qimmet omumiy sani + mumkin qimmet bashlinish qimmiti)
مونۇ شەكىلدە قوللىنىشقا بولىدۇ. بۇيەردە Math.floor()
ئۇسسۇلىنى ئىشلىتىشىمىزدىكى مەقسەت؛ ئادەتتە random()
ئۇسسۇلى 0 دىن چوڭ، 1 دىن كىچىك كەسىر سان قايتۇرىدۇ بۇنىڭغا بىر پۈتۈن ساننى كۆپەيتىپ، يەنە بىر ساننى قوشۇپ بەرسەكمۇ ئوخشاشلا كەسىر سانلىق نەتىجە بولۇشى مۇمكىن، بىزگە لازىمى پۈتۈن سان. شۇڭا پۈتۈنلەيمىز! مەسىلەن: 1 دىن 10 غىچە بولغان ئىختىيارىي پۈتۈن سان ھاسىللىماقچى بولساق مۇنداق يازىمىز:
var num=Math.floor(Math.random()*9+2);
چۈشەنگەندە: 1- دىن 10 غىچە جەمئىي 9 مۇمكن سان بار؛ بۇنىڭ ئىچىدە لازىملىق مۇمكىن سانلار 2 دىن باشلىنىدۇ، شۇڭا يۇقىرىقىدەك يازىمىز.
ئەلۋەتتە بىر فۇنكىسىيە بولاقلىۋىلىپ، ئۇدۇل كەلگەن يەردە تېخىمۇ چۈشىنىشلىك قىلىپ ئىشلىتىشكە بولىدۇ. مەسىلەن تۆۋەندىكدەك:
function selectfrom(lowerValue, upperValue){ var choices=upperValue-lowerValue+1; return Math.floor(Math.random()*choices+lowerValue); } var randNum=selectfrom(2,10); alert(randNum);
يۇقىرىقى فونكىسيەرىمىزگە ئىختىيارىي سان ھاسىللايدىغان دائىرىدىن ئەڭ كىچىك ۋە ئەڭ چوڭ سان ئۆتكۈزۈلىدۇ. ئەڭ چوڭىدىن ئەڭ كىچىكىنى ئېلىۋىتىپ، 1 نى قوشۇپ بەرسەك مۇمكىن قىممەتلەرنىڭ ئومىي سانى چىقىدۇ. ئاندىن يۇقىرىقى ئۇسسۇلغا بۇ قىممەتنى پارامىتىرلار قىلىپ ئۆتكۈزۈپلا كۆزلىگەن مەقسەتكە يىتەلەيمىز. ئەلۋەتتە بۇ فۇنكىسيەرىمىزنى جانلىق ئىشلىتىپ، تۆۋەندىكىدەك ئىختىيارىي رەڭ ھاسىللىيالايمىز:
function selectfrom(lowerValue, upperValue){ var choices=upperValue-lowerValue+1; return Math.floor(Math.random()*choices+lowerValue); } var colors=["red","green","blue","yellow","balck","pruple","brown"]; var color=colors[selectfrom(0,colors.length-1)]; alert(color); // yellow yaki balck digendek xalighan reng namini qayturidu
چۈشەنگەندە: selectfrom
ناملىق فۇنكسىيەرىمىزنىڭ ئىككىنچى پارامتىرىنىڭ ئورنىغا colors
گۇرۇپپىسىنىڭ ئۇزۇنلۇقىنى ئۆتكۈزدۇق. دېمەك، گۇرۇپپا ئىچىدىكى ھەرپ بەلگىلىرىنىڭ ئېندىكىس ئادرىسىنى ئختىيارىي ھاسىلاپ ئاندىن شۇ ئېندىكىستىكى قىممەتنى ئالساقلا بولىدۇ.
مەزككۇر ئوبىكتنىڭ باشقا ئۇسسۇللىرى
Math ئوبىكتىنىڭ يەنە تۆۋەندىكىدەك بىرقانچە ئۇسسۇللىرىمۇ بار بولۇپ، زۆرۈر بولغاندا جانلىق ئىشلىتىشكە بولىدۇ:
1. Maht.abs(num) -- مۇتلەق قىممەت تېپىش
2. Math.exp(num) -- يەنى e نىڭ دەرىجىسى
3. Math.log(num) -- تەبئىي لوگارىفما
4. Math.pow(num,power) -- مەلۇم ساننىڭ دەرىجىسى
5. Math.sqrt(num) -- كۋادرات يىلتىزى
6. Math.acos(num) -- تەتۈر كوسىنوس قىممىتى
7. Math.asin(num) -- تەتۈر سىنوس قىممىتى
8. Math.atan(num) -- تەتۈر تانگىنوس قىممىتى
9. Math.atan2(x,y) -- يەنى y/x نىڭ تەتۈر تانگىنوس قىممىتى
10. Math.cos(num) -- كوسىنوس قىممىتى
11. Math.sin(num) -- سىنوس قىممىتى
12. Math.tan(num) تانگىنوس قىممىتى
دېمەك يۇقىرىقى ئۇسسۇللار ئادەتتە JS تىكى ھېسابلاش ئىھتىياجىمىزنى تۈگەل قاندۇرۇپ كېتەلەيدۇ. تۆۋەندە موشۇ ئۇسسۇلارنى قوللىنىپ ئاددىيغىنە بىر ھىسابلىغۇچ ياساپ باقتىم. قىزىققۇچىلار كودلىرىغا قاراپ باققايسىلەر:
ھىسابلىغۇچنىڭ تەرقى - تۇرقى مۇنداق : ھەقىقى ئۈنۈمىنى بۇيەردىن كۆرۈڭ
ئاندىن JS كود قىسمى تۆۋەندىكىدەك:
//Hisablash jeryanida lazim bolidighan paramitirlar var formulaToShow=""; // korsitidighan hisablash ipadisi var formulaToCalcu="";//hisablaydighan formula var result=" "; //netije var saved="0"; //saqlanghan miqdar //hisablash ipadisi funkisiyesi turghuzush function TypeFormula(com) { //aldinqi ipadini hisaplap bolghan bolsa, ikranni tazlap qayta hisablaydu if((result!=" "||result=="0") && com!="save"){ formulaToShow=""; result=" "; } // konupka uchurlirigha irishish switch(com) { case "clear"://tazilash formulaToShow=""; result=" "; break; case "back"://qaytish { var f=formulaToShow; if(f.substring(f.length-5,f.length)=="asin("||f.substring(f.length-5,f.length)=="acos("||f.substring(f.length-5,f.length)=="atan("||f.substring(f.length-5,f.length)=="sqrt(") formulaToShow=formulaToShow.substring(0,formulaToShow.length-5); else if(f.substring(f.length-4,f.length)=="sin("||f.substring(f.length-4,f.length)=="cos("||f.substring(f.length-4,f.length)=="tan("||f.substring(f.length-4,f.length)=="exp(") formulaToShow=formulaToShow.substring(0,formulaToShow.length-4); else if(f.substring(f.length-3,f.length)=="ln(") formulaToShow=formulaToShow.substring(0,formulaToShow.length-3); else formulaToShow=formulaToShow.substring(0,formulaToShow.length-1); } break; case "sign": {if (formulaToShow=="")formulaToShow="-"; else if(formulaToShow[0]=="-")formulaToShow=formulaToShow.substring(1,formulaToShow.length); else formulaToShow="-"+formulaToShow;} break; case "save": // netijini saqlash saved=formulaToShow; break; case "getsave": // saqlighanni elish formulaToShow=formulaToShow+saved; break; case "result":// hisablash netijisi {if(formulaToShow=="") result=" "; else { formulaToCalcu=formulaToShow.toString(); formulaToCalcu=formulaToCalcu.replace(/sin/g, "Math.sin"); formulaToCalcu=formulaToCalcu.replace(/cos/g, "Math.cos"); formulaToCalcu=formulaToCalcu.replace(/tan/g, "Math.tan"); formulaToCalcu=formulaToCalcu.replace(/asin/g, "Math.asin"); formulaToCalcu=formulaToCalcu.replace(/aMath.sin/g, "Math.asin"); formulaToCalcu=formulaToCalcu.replace(/acos/g, "Math.acos"); formulaToCalcu=formulaToCalcu.replace(/aMath.cos/g, "Math.acos"); formulaToCalcu=formulaToCalcu.replace(/atan/g, "Math.atan"); formulaToCalcu=formulaToCalcu.replace(/aMath.tan/g, "Math.atan"); formulaToCalcu=formulaToCalcu.replace(/exp/g, "Math.exp"); formulaToCalcu=formulaToCalcu.replace(/ln/g, "Math.log"); formulaToCalcu=formulaToCalcu.replace(/sqrt/g, "Math.sqrt"); try {result=eval(formulaToCalcu);} catch (exception) { window.alert(exception); } } } break; default: formulaToShow+=com; break; } txtShow.innerHTML=formulaToShow+"
"+result+"
"; }
پايدىلغانغان مەنبە: JavaScript高级程序设计(第3版)
ماۋۇ تەشنا بىلوگىغا دۇم ياتىدىغان يەرگە يەتتى .

ئاداش پەچەتقۇ! مۇشۇنداق كىچىك تىپتىكى دائىم ئىشلىتىدىغان قۇراللارنى، ئويۇنلارنى بىر يەرگە جەملەپ قويساق… يېقىندا بىرقانچە كاتتا ئويۇن ئۇچراپ قالغان.
داۋاملىق تىرىشىڭلاربۇرادەر،سىلەرنى ھەرۋاقىت قوللايمەن.