Asosiy operatorlar, matematika
Ko'pgina operatorlarni maktabdan bilamiz: qo'shish +, ayirish -, ko'paytirish * va hokazo. Bu darsda esa maktabda o'qitilmaydigan tomonlariga โ operatorlarning JavaScript'ga xos xususiyatlariga e'tibor beramiz.
Atamalar: operand va operator
Davom etishdan oldin ba'zi atamalarni aniqlashtiramiz:
- Operand โ operator qo'llaniladigan qiymat. Masalan,
5 * 2ifodasida ikkita operand bor: 5 va 2. Ba'zan ularni "argument" ham deyishadi; - Unar operator โ bitta operandga qo'llaniladi. Masalan, unar minus
-xsonning ishorasini teskarisiga o'zgartiradi; - Binar operator โ ikkita operandga qo'llaniladi. Masalan,
5 - 2dagi minus binar.
Matematik amallar
JavaScript quyidagi matematik amallarni qo'llab-quvvatlaydi:
- Qo'shish
+ - Ayirish
- - Ko'paytirish
* - Bo'lish
/ - Qoldiq (modul)
% - Darajaga ko'tarish
**
Qoldiq %
% operatori โ bu foiz emas! a % b natijasi a ni b ga bo'lgandagi qoldiq bo'ladi:
Darajaga ko'tarish **
a ** b ifodasi a ni b-darajaga ko'taradi:
Plyus (+) va matnlar
Endi maktab matematikasidan farq qiladigan qismga o'tamiz. Odatda + sonlarni qo'shadi. Ammo agar operandlardan biri matn bo'lsa, + ularni songa qo'shmaydi, balki birlashtiradi (konkatenatsiya qiladi):
2 + 2 + "1" da avval 2 + 2 = 4 hisoblanadi, so'ng 4 + "1" = "41" bo'ladi. Lekin "1" + 2 + 2 esa "122" beradi โ chunki birinchi qadamdan boshlab matn ishtirok etadi.+ operatoriga xos. Boshqa arifmetik operatorlar (-, *, /) matnni doim songa o'giradi:Unar plyus va son konvertatsiyasi
Unar plyus + (bitta operandga qo'llanganda) songa hech qanday ta'sir qilmaydi. Ammo agar operand son bo'lmasa, uni songa o'giradi โ xuddi Number() kabi, lekin qisqaroq:
+a + +b yozuvi qisqa va ko'p ishlatiladi. Unar plyuslar birinchi ishlaydi (ustuvorligi yuqori), so'ng ikki son binar plyus bilan qo'shiladi.Operatorlar ustuvorligi
Agar bir ifodada bir nechta operator bo'lsa, ularning bajarilish tartibi ustuvorlik (precedence) bilan aniqlanadi. Maktabdan bilamiz: ko'paytirish qo'shishdan oldin bajariladi. Bu โ ko'paytirishning ustuvorligi yuqoriroq degani:
Ustuvorlik jadvalidan ba'zi qatorlar (yuqoridagilar avval bajariladi):
- Unar plyus/minus
+x,-xโ yuqori; - Darajaga ko'tarish
**; - Ko'paytirish/bo'lish
*,/; - Qo'shish/ayirish
+,-; - Tayinlash (assignment)
=โ eng past.
Tayinlash ham qiymat qaytaradi
JavaScript'da = (tayinlash) ham operator hisoblanadi. U o'zgaruvchiga qiymat yozadi va shu qiymatni qaytaradi. Shuning uchun quyidagi kod ishlaydi (garchi o'qish qiyin bo'lsa ham):
Qisqartma tayinlash operatorlari
Bir o'zgaruvchiga amal qo'llab, natijani o'ziga yozish juda ko'p uchraydi. Buning uchun qisqartma operatorlar bor: +=, -=, *=, /=, %=, **=:
= bilan bir xil โ past. Shuning uchun ular boshqa hisoblardan keyin bajariladi: n *= 3 + 5 avval 3 + 5 = 8 ni hisoblab, so'ng n *= 8 qiladi.Xulosa
- Matematik operatorlar:
+ - * / % **; +operandlardan biri matn bo'lsa โ birlashtiradi (konkatenatsiya), boshqa operatorlar esa songa o'giradi;- Unar plyus
+xโ qiymatni tez songa o'girish usuli; - Ustuvorlik amallar tartibini belgilaydi; qavs uni o'zgartiradi;
=ham qiymat qaytaradi;- Qisqartmalar:
+= -= *= /= %= **=.