Arifmetik amallar — chuqurroq

DarslarWeb dasturlash

Arifmetik amallar — chuqurroq

Amallar tartibi, butun va kasr sonlar, Math obyekti va sonlarni matnga aylantirish hiylalari.

40 daqiqa
JavaScript — Dars 2

Arifmetik amallar

Matematika — dasturlashning poydevori. Bugun JS'da sonlar bilan ishlashning barcha sirini o'rganamiz.

+-*/%Math

Dars rejasi

5 ta mavzu
  1. 01Amallar tartibi (precedence)
  2. 02Son va matn qo'shilsa nima bo'ladi?
  3. 03Template literals — teng belgili satr
  4. 04Math obyekti — kuchli hisoblagich
  5. 05Sonni matnga, matnni songa

1. Amallar tartibi

Maktabdan bilamiz: avval ko'paytirish va bo'lish, keyin qo'shish va ayirish. JS ham xuddi shunday. Qavs — tartibni o'zgartiradi.

1console.log(2 + 3 * 4); // 14 — avval 3*4=12, keyin 2+12
2console.log((2 + 3) * 4); // 20 — qavs tufayli 2+3=5, keyin 5*4
3
4// Murakkab misol
5const narx = 100;
6const soliq = 12;
7const umumiy = narx + (narx * soliq / 100); // 100 + 12 = 112
8console.log(umumiy);

2. Son va matn qo'shilsa nima bo'ladi?

JS'da + belgisi ikki ishni qiladi: sonlarni qo'shadi yoki matnlarni ulaydi. Bu chalkashlikka olib keladi — diqqat.

1console.log(5 + 3); // 8 (son + son)
2console.log("Ali" + " " + "Valiyev"); // "Ali Valiyev" (matn + matn)
3
4// Chalkash qism:
5console.log("5" + 3); // "53" (matn, chunki "5" matn!)
6console.log("Yosh: " + 17); // "Yosh: 17"
7console.log(1 + 2 + "3"); // "33" (avval 1+2=3, keyin "3"+"3"="33")
8console.log("1" + 2 + 3); // "123" (avval "1"+"2"="12", keyin +"3")

3. Template literals

+ bilan matnni ulash og'ir. Zamonaviy yo'l — teng belgili qo'shtirnoq (backtick) ichida ${...} bilan o'zgaruvchi qo'shish.

1const ism = "Ali";
2const yosh = 17;
3
4// Eski usul (qiyin o'qiladi)
5console.log("Mening ismim " + ism + ", " + yosh + " yoshdaman.");
6
7// Zamonaviy usul — template literals
8console.log(`Mening ismim ${ism}, ${yosh} yoshdaman.`);
9
10// Ichida amal ham bajarish mumkin
11console.log(`Keyingi yili ${yosh + 1} yoshga to'laman.`);

4. Math obyekti

Math — JS'ning tayyor matematik asboblari. Kvadrat ildiz, daraja, yaxlitlash, tasodifiy son — hammasi shu yerda.

1Math.PI // 3.141592653589793
2Math.max(3, 7, 2, 9) // 9
3Math.min(3, 7, 2, 9) // 2
4
5Math.abs(-5) // 5 (modul)
6Math.sqrt(16) // 4 (kvadrat ildiz)
7Math.pow(2, 10) // 1024 (2^10)
8
9// Yaxlitlash
10Math.round(4.5) // 5 (yaqin butun)
11Math.ceil(4.1) // 5 (yuqoriga)
12Math.floor(4.9) // 4 (pastga)
13
14// Tasodifiy son (0 dan 1 gacha)
15Math.random() // 0.7342...
16
17// 1-6 oralig'ida tasodifiy son (zar tashlash)
18Math.floor(Math.random() * 6) + 1
Zar tashlash
Natijajonli

5. Sonni matnga, matnni songa

Foydalanuvchi formadan kiritgan narsalar — hamisha matn (string). Hisob-kitob qilish uchun ularni songa aylantirish kerak.

1// Matndan songa
2const matn = "42";
3console.log(Number(matn)); // 42
4console.log(parseInt("18px")); // 18
5console.log(parseFloat("3.14 kg")); // 3.14
6
7// Sondan matnga
8const son = 42;
9console.log(String(son)); // "42"
10console.log(son.toString()); // "42"
11
12// Qisqa hiyla: +
13console.log(+"5" + +"3"); // 8 (ikkalasini ham songa aylantirdik)
14
15// Noto'g'ri son = NaN
16console.log(Number("salom")); // NaN (Not a Number)

Kichik test

0 / 4

1.2 + 3 * 4 natijasi?

2."5" + 3 natijasi?

3.Kasrni yuqoriga yaxlitlash uchun?

4.Template literals qaysi tirnoqlar bilan yoziladi?

Mustaqil ish

0 / 5