+ (unar plyus) operatori o'z operandining qiymatini raqamga aylantiradi va aylantirilgan qiymatni qaytaradi. Raqamli operand bilan foydalanilganda, u hech narsa qilmaydi:
Var x = + "5";
- (unar minus) operatori, agar kerak bo'lsa, o'z operandining qiymatini raqamga o'zgartiradi va keyin raqamni salbiy qiladi:
Var x = -5 + 3;
Unary plyus va minus operandlarni Number () funktsiyasi bilan bir xil qoidalarga muvofiq o'zgartiradi.
O'sish va kamaytirish
++ (o'sish) operatori o'z operandining qiymatini bittaga oshiradi. Agar operandning qiymati raqam bo'lmasa, operator uni avtomatik ravishda raqamga aylantiradi, uni bittaga oshiradi va natijani qaytaradi, bu esa operandga qayta tayinlanadi.
O'sish ikki shaklga ega - postfiks (operator operanddan keyin qo'yiladi) va prefiks (operator operanddan oldin joylashtiriladi). Agar u postfiks shaklida ishlatilsa, u holda operandning dastlabki qiymati qaytariladi va shundan keyingina operandning qiymati bittaga oshiriladi.
Ko'pincha JavaScript hisob-kitoblari biz xohlagan natijalarni bermaydi. Albatta, biz raqamlar bilan hamma narsani qila olamiz - yuqoriga yoki pastga yaxlitlash, diapazonlarni o'rnatish, keraksiz raqamlarni ma'lum miqdordagi o'nli kasrlarga kesib tashlash, barchasi kelajakda bu raqam bilan nima qilishni xohlashingizga bog'liq.
Barchangiz arifmetik operatorlar bilan o'rta maktabdan beri tanishsiz. Bu qo'shish, ayirish, bo'lish va ko'paytirish uchun odatiy belgilar: +, -, /, *. Shunga ko'ra, ular dasturlashda oddiy matematikadagi kabi funktsiyalarni bajaradilar. Bu bilan hech qanday qiyinchiliklarga duch kelmaysiz.
Operatorlar ishlaydigan ma'lumotlar deyiladi operandlar.
2 + 3 // bu erda 2 va 3 raqamlari operandlar, + belgisi esa qo'shish operatoridir
Matematikaga o'xshab, arifmetik operatorlar ham o'z ustuvorliklariga ega: ko'paytirish va bo'lish qo'shish va ayirishdan ustun turadi.
2 + 3 * 4 // bu erda birinchi navbatda ko'paytirish, keyin esa qo'shish amalga oshiriladi
Va xuddi matematikada bo'lgani kabi, ustunlikni o'zgartirish uchun qavslar ko'p ishlatiladi:
(2 + 3) * 4 // bu erda birinchi navbatda qo'shish, keyin esa ko'paytirish amalga oshiriladi
Aytgancha, = belgisi ham operator hisoblanadi. Biz allaqachon maqolada bilib olganimizdek, bu tayinlash operatori va umuman teng belgi emas. Buni unutmang!
Modul operatori
Endi yana bir nechta qiziqarli arifmetik operatorlarni ko'rib chiqamiz. Va birinchisi foiz belgisi -% bo'ladi. JavaScript-da bular umuman so'zning foizlari emas. Dasturlashda modullarga bo'linish shunday qo'llaniladi. Bunday operatsiyaning natijasi bo'linishning qolgan qismi bo'ladi. Masalan:
100% 22 // qolgan 12 bo'ladi
100% 10 // qolgan 0 bo'ladi
Hisob-kitoblar uchun ushbu operator ko'paytirish va bo'lish bilan bir xil ustunlikka ega, shuning uchun qavslarni kiritishni unutmang.
Operatorlarni birlashtirish
Belgini qisqartirish uchun = operatori boshqa operatorlar bilan birlashtirilishi mumkin va kerak. Misol:
var n = 2; // n o'zgaruvchisini 2 ga qo'ying
n = n + 3; // n o'zgaruvchisiga n + 2 yangi qiymat bering, biz 5 ni olamiz
Xuddi shunday yozilishi mumkin:
var n = 2;
n + = 3; // n = n + 3 yozishga teng
O'sish ++ va kamaytirish operatorlari - -
Arifmetik operatorlar orasida bir nechta juda qiziq bo'lganlar bor - oshirish va kamaytirish... ++ va –– mos ravishda ko'rsatilgan. Birinchisi o'zgaruvchini bittaga oshiradi, ikkinchisi esa uni kamaytiradi. Bu xususiyat dasturlashda juda tez-tez qo'llaniladi, chunki u juda ko'p qulayliklar beradi. Ko'pincha uni shartli iboralarda topish mumkin, ammo bu haqda keyinroq.
Ikkala operator ham yozuvda ma'lum bir joyga ega. Ular ikkalasida ham bo'lishi mumkin prefiks shakl (o'zgaruvchidan oldin) ++ n va in postfiks(o'zgaruvchidan keyin) n ++. Farqi juda katta! Hech qachon bu shakllarni aralashtirib yubormang va ularni yaxshi eslab qoling. Agar bu operatorlar o'zgaruvchidan oldin kelsa, natijada uning qiymati 1 ga oshadi. Lekin! Agar ular o'zgaruvchidan keyin kelsa, ular asl qiymatni qaytaradilar. Misol:
var n = 2, m = 0;
m = ++ n // n ni 1 ga oshiradi (n = 3) va m ga bir xil 3 qiymatini beradi
var n = 2, m = 3;
m = n ++ // n ni 1 ga oshiradi (n = 3), lekin m ni oldingi n = 2 qiymatiga belgilaydi
Birinchi misol bilan, ishonchim komilki, siz buni osongina tushunasiz. Ammo ikkinchisi bilan muammolar paydo bo'lishi mumkin. Bu narsani tushunishni osonlashtirish va chalkashmaslik uchun, tasavvur qiling-a, siz avval n o'zgaruvchining qiymatini m o'zgaruvchisiga belgilab qo'ygansiz, keyin esa n qiymatini bittaga oshirgansiz. Birinchi misolda siz avval n qiymatini bir marta oshirdingiz, keyin esa bu qiymatni m o‘zgaruvchisiga belgiladingiz.
Arifmetik operatorlar bilan hammasi shu. Albatta, ushbu oddiy operatorlardan foydalanishning ko'plab variantlari va nozik tomonlari mavjud, ammo bu sizga boshlash uchun etarli bo'ladi.
Va yana matematikani eslaymiz. Belgilar hammaga va hammaga tanish. Dasturlashda ular deyiladi taqqoslash operatorlari... JavaScript quyidagi taqqoslash operatorlaridan foydalanadi:
< меньше
> ko'proq
<= меньше или равно
> = kattaroq yoki teng
== teng
= teng emas
=== qat'iy teng
! == mutlaqo teng emas
E'tibor bering, katta yoki teng belgisi => emas, balki> = kabi yoziladi. Ya'ni, o'q teng belgisidan keyin emas, balki oldinda.
Taqqoslash operatorlari o'zgaruvchilar qiymatlarini solishtirish imkonini beradi va bu operatsiya natijasi har doim mantiqiy qiymat rost yoki noto'g'ri bo'ladi. Ular odatda shartli iboralarda ishlatiladi. Keyinchalik kodning qaysi qismi bajarilishi taqqoslash qanday natija berishiga bog'liq.
JavaScript-da siz bir vaqtning o'zida turli xil ma'lumotlar turlarini taqqoslashingiz mumkin, masalan, raqam va satr:
12345 == "12345" // rost
Shunchaki, bu holda satr avtomatik ravishda raqamga aylanadi. Qat'iy tenglik === yoki tengsizlik!== faqat bir xil turdagi o'zgaruvchilarni solishtirganda qo'llaniladi.
Mantiqiy operatorlar
JavaScript-da mantiqiy operatsiyalar yangi boshlanuvchilar uchun qiyin mavzulardan biridir. Tilni o'zlashtirishda yanada muvaffaqiyatli borish uchun u bilan yaxshilab shug'ullanishga arziydi. Ular ko'pincha taqqoslash operatsiyalari bilan birgalikda ishlatiladi va mantiqiy qiymatni true yoki false qaytaradi.
Uchta mantiqiy operator mavjud:
&& (VA)
|| (YOKI)
! (YO'Q)
Mantiqiy operator && (VA)
&& operatori ikkita qiymat ustida mantiqiy AND amalini bajaradi. Biroq, agar ikkala operand ham rost bo'lsa, u haqiqatni qaytaradi. Agar bitta yoki ikkala operand noto'g'ri bo'lsa, operator yolg'onni qaytaradi. Misollar:
2 < 3 && 4 < 5 // true
2 < 3 && 5 < 4 // false
3 < 2 && 5 < 4 // false
Mantiqiy operatorlar taqqoslash operatorlariga qaraganda pastroq ustunlikka ega, shuning uchun bu misollarda qavslar kerak emas. Ko'rinib turibdiki, biz avval raqamlarni bir-birimiz bilan taqqoslaymiz va shundan keyingina mantiqni qo'llaymiz.
Mantiqiy operator || (YOKI)
Mantiqiy operator bilan || (YOKI) boshqa qo'shiq. Operator || ikkita operandda mantiqiy OR amalini bajaradi. Agar bitta yoki ikkala operand rost bo'lsa, u haqiqatni qaytaradi. Agar ikkala operand ham yolg'on bo'lsa, u noto'g'ri qaytaradi. Misollar:
2 < 3 || 4 < 5 // true
2 < 3 || 5 < 4 // true
3 < 2 || 5 < 4 // false
Mantiqiy operatorlarda bitta hiyla bor. Ular keraksiz ishlarni yoqtirmaydilar. Biroq, men shundayman. Ular har doim o'z hisoblarini chapdan o'ngga boshlaydilar. Agar ifodaning birinchi qismi ularning shartlariga mos kelsa, u holda ular ifodaning qolgan qismini ham baholamaydilar.
Misol uchun, agar operator || boshida haqiqiy qiymatni topadi, keyin darhol haqiqiy qiymatni beradi va qolganini endi tekshirmaydi. Shuningdek, && operatori, agar boshida noto'g'ri ifoda topsa, darhol noto'g'ri natija beradi, qolganini tekshirmaydi.
Yana bir xususiyat: AND operatorining && ustunligi OR || dan yuqori shuning uchun u oldinroq bajariladi:
2 < 3 || 4 < 5 && 5 < 6 // здесь сначала будет выполнено вычисление в правой части, а потом уже в левой
Mantiqiy operator! (YO'Q)
Mantiqiy operator! "mantiqiy EMAS" degan ma'noni anglatadi. U faqat bitta operand bilan ishlatiladi va ushbu operandning qiymatini o'zgartiradi. Agar n rost bo'lsa, N noto'g'ri bo'ladi. Bu operator faqat bitta operandga biriktirilishi mumkinligi sababli butun sonli ifodani invertatsiya qilish uchun uni qavs ichiga olish kerak!(N && m).
String operatorlari
Biz yuqorida string operatorlari haqida gapirgan edik. Bu string o'zgaruvchilarni ulash uchun ishlatiladigan bir xil plyus + yoki boshqa yo'l bilan - uchun birikmalar(satr qo'shish). Misol:
"Igor" + "Kventor" == "Igor Kventor"
E'tibor bering, birinchi so'zda yopilish tirnoqidan oldin bo'sh joy mavjud. Agar siz uni qo'shmasangiz, chiziqlar bir so'z bilan birlashadi "IgorKventor".
Bu operatorning bitta o'ziga xos xususiyati bor: agar ifodada kamida bitta satr bo'lsa, u va boshqa barcha argumentlar satr turiga olib keladi. Masalan:
Qolgan arifmetik operatorlar faqat raqamlar bilan ishlaydi va har doim argumentlarni raqamga aylantiradi.
Shartli operatorlar
JavaScript-da if va ? ikkita shartli iboralar mavjud: Garchi, aniqrog'i, if aslida boshqaruv bayonoti bo'lib, juda keng qamrovli bo'lib, juda ko'p yaxshiliklar va qiziqarli xususiyatlarga ega. Shuning uchun, bu haqda alohida maqola bo'ladi. Hozircha oddiyroq shartli operatorni ko'rib chiqamiz ?:
Odatda bu operator quyidagicha yoziladi?: Lekin dasturlarda u boshqacha ko'rinadi. U uchta operandga ega. Birinchi operand belgidan oldin keladimi? , ikkinchisi belgilar orasida? va: uchinchisi - keyin:
holat? qiymat 1: qiymat 2
Uning ishlashining ma'nosi oddiy: agar ko'rsatilgan shart bajarilsa, 1 qiymati qaytariladi, agar bajarilmasa - qiymat 2. Bu shartli operator ko'pincha if operatoriga alohida ehtiyoj bo'lmaganda, uni oddiyroq almashtirish vazifasini bajaradi. ikkinchisi. Bunday holda, yozuvning o'zi qisqartiriladi va uni o'qish osonroq bo'ladi.