JavaScript Math Object
Tags: javascript, math, programming, beginners
Published: 2022-04-29 18:28:00


Bugun biz siz bilan JavaScriptda ko'p foydalaniladigan Math funksiyasining turlari haqida gaplashamiz.

 
 **Math.round** - bilamizki sonlar har doim ham yaxlitlangan holda bo'lmaydi undan keyin `4.1;  3.9;  2.5;` kabi nechchidir 
qo'shimcha miqdorni bildirib keluvchi qismlari bo'ladi.Shunday holatda bilamizki 0.0 dan 0.5 gacha mavjud sonning o'ziga ya'ni kam tomonga yaxlitlab yuboriladi: `4.3 = 4; 4.4 = 4; 4.1 = 4;` kabi. 
Yoki bo'lmasa shuni aksi bo'lsa: `0.5 dan boshlab` undan keyingi keladigan butun songa (katta tomonga) yaxlitlab yuboriladi.
`4.5 = 5; 3.6 = 4; 2.7 = 3;` kabi.Bularni o'qituvchilarning bizga qo'ygan baholari orqali ham tasavvur qilishimiz mumkin.
Quyidagi misol orqali yanada yaxshi tushunib olishingiz mumkin.

```js
//MATH.ROUND

let a = 4.3;
let b = 4.5;

console.log(Math.round(a));
console.log(Math.round(b));

/* RESULT: a = 4
           b = 5 */
```


 **Math.pow** - Bilamizki sonning darajasini chiqarishda biz `**` belgilaridan foydalanamiz.
Bunga qo'shimcha ravishda Math.pow orqali ham sonning darajasini,ham ildizini chiqarish imkoniyatiga ega bo'lamiz.
Quyidagi misollar orqali yanada yaxshiroq ma'lumot olishingiz mumkin.

```js
// MATH.POW darajani chiqarish

let x = Number(prompt('istalgan bir sonni kiriting darajasini chiqarish uchun'));
console.log(Math.pow(x, 3)); 

// 3 sonini o'rniga xohlagan soningizni kiritishingiz mumkin bu x ni 3 darajasini chiqar degan ma'noda berilgan.

```


```js
// MATH.POW ildizni chiqarish

let x = Number(prompt('istalgan bir sonni kiriting ildizini chiqarish uchun'));
console.log(Math.pow(x, 1/2)); 
```

> **Attention!** Yuqoridagi ikki holatda `prompt` siz brauzerni ochganda sonni kiritish uchun ko'rinadigan inputdir.Uning oldidagi `Number` esa promptda kiritilgan sonning turini (data type) numberga o'tqazish uchun qo'llanilgan,chunki promptda kiritilgan xossa string turini qaytaradi.Data typlelar haqida keyingi postlarda batafsil gaplashamiz.

**Math.sqrt** - bu ham ildiz olish uchun ishlatilinadigan obyektdir.Quyidagi misol orqali yanada ko'proq bilib olishingiz mumkin.

```js
let x = Number(prompt('biror son kiriting'));
console.log(Math.sqrt(x));

//prompt orqali son kiritasiz va ildizini olishingiz mumkin
```

**Math.ceil** - Bu ham sonni yaxlitlash uchun ishlatilinadi,buning o'ziga xos jihati shundaki son o'qi bo'yicha yaxlitlaydi.Bu degani `4.1 = 5, 4.2 = 5, 3.3 = 4, 2.6 = 3;` minus holatda bo'lsa: `-4.2 = -4, -3.5 = -3, -2.9 = -2;` ko'rinishida yaxlitlash uchun ishlatilinadi.Quyidagi misollar orqali ko'proq bilib oling.

```js
let number = 4.3;
console.log(Math.ceil(number));
// result: 5


let number = -4.3;
console.log(Math.ceil(number));
// result: -4
```

**Math.floor** - Buni _Math.ceil_ning teskari varianti desak ham bo'ladi.Bunda kiritilgan sonning o'nlik qismi kichik tarafga qarab yaxlitlanadi.Shuningdek,**parseInt** - xossasi ham Math.floor bilan deyarli bir xil natijani beradi.**parseFloat** - esa son qanday bo'lsa shundayligicha chiqarib beradi,o'zgarishsiz.Quyida ko'rishingiz mumkin.

```js
let number = 7.7;
console.log(Math.floor(number));
// result: 7

let number = 7.7;
console.log(parseInt(number));
// result: 7

let number = 7.7;
console.log(parseFloat(number));
// result: 7.7
```

**Math.trunc** - bu ham Math.floor bilan bir xil ishlaydi va performanceda farqi bor.Quyida batafsil ko'rishingiz mumkin bo'ladi:

```
console.log(Math.trunc(13.37));
// expected output: 13

console.log(Math.trunc(42.84));
// expected output: 42

console.log(Math.trunc(0.123));
// expected output: 0

console.log(Math.trunc(-0.123));
// expected output: -0
```


**toFixed** - so'ngi ko'radiganimiz bu obyekt bizda bir nechta raqamlardan iborat qoldiqli sonlar bo'lgan holatda,o'sha qoldiqlardan nechtasini tanlab,yaxlitlab olish imkonini beradi.Quyidagi misol orqali yaxshiroq bilib oling.

```js
let usd = 127.132571021;
console.log(usd.toFixed(2));
//result: 127.13

//shuningdek qavsni ichidagi 2 sonining o'rniga istalgan o'zingizga kerakli bo'lgan sonni berishingiz mumkin,tanlab olish uchun.
```

**PERFORMANCE**

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/rislfa4scqbtep3q5ylr.png)

**Conclusion** - va nihoyat maqolani tugatdik,oxirigacha o'qiganingiz uchun rahmat.Agarda ba'zi joylarda tushunmagan bo'lsangiz xavotirga o'rin yo'q,o'rganishda davom eting.
Ushbu maqola ozroq bo'lsada manfaatli bo'lgan bo'lsa biz shundan xursandmiz,kamchiliklariga rozi bo'lib qo'yarsiz.Ha aytgancha,bu mening dasturchi sifatida yozgan birinchi maqolam edi,InshaAlloh bundan keyin ham foydali maqolalar yozishda davom etamiz.