JavaScript operatorlari. Virazi ta operatorlari Ikkilik javascript operatorlari

Golovna / Corisna haqida ma'lumot

Ushbu bo'lim JavaScript-ni ko'chirish operatorlari, masalan, tayinlash, moslashtirish, arifmetik, bit, mantiqiy, kichik va boshqa maxsus operatorlarni tavsiflaydi.

Operatorlar va viruslarning eng so'nggi va batafsil ro'yxatini hamkoringizdan olish mumkin.

Operatorlar

JavaScript ham operator turlari bo'lishi mumkin. Tsej podrozdil terining turini tavsiflaydi va ustuvorliklar haqidagi ma'lumotlarni birma-bir olib tashlaydi.

JavaScript ikkilik va birlik operatorlarni, shuningdek, bitta maxsus uchlik operator, aqlli operatorni qo'llab-quvvatlaydi. Ikkilik operatsiya ikkita operandga ega, biri operatordan oldin va biri undan keyin:

operand1 operator operand2

Masalan: 3+4 yoki x*y.

Birlik operatsiya o'z qatoriga ega: operatordan oldin yoki keyin bitta operand:

operator operand operand operator

Masalan: x++ yoki ++x.

operator va attraksion

Tayinlash operatsiyasi orqali qiymat belgilash operatorining operandiga ("=" belgisi) o'ng operanddan olinganidek o'rnatiladi. Asosiy jalb qilish operatori ê =, vín chap qo'l deb nomlanuvchi operandga o'ng operandning qiymatini beradi. Demak, viraz x = y x ning y qiymatiga ega bo'lishi kutilayotganligini bildiradi.

Bundan tashqari, ombor operatorlari ham ishtirok etadilar, chunki ular jadvalda tasvirlangan operatsiyalarning tezkor taqdimoti uchun g'alaba qozonadilar:

Taklif qiluvchi operatorlar ro'yxati
Im'ya Tezlik operatori sezgi
Taklif x=y x=y
Qo'shimchalardan jozibadorlik x += y x = x + y
Vídnimannyam dan jozibadorlik x -= y x = x - y
Ko'p sonlar tomonidan jalb qilingan x *= y x=x*y
Podilom bilan jozibadorlik x /= y x = x/y
Modulga muhabbat x %= y x = x % y
Chap halokatga taklif x<<= y x = x<< y
Vayron qilish qoidasi bilan ishtirok etish x >>= y x = x >> y
O'ng qo'lning imzosiz yo'q qilinishi bilan jalb qilingan x >>>= y x = x >>> y
AND zarbalari bilan ishtirok etish x &= y x=x&y
XOR tishlashda ishtirok etadi x^=y x = x^y
Kaltaklangan OR bilan ishtirok etish x |= y x = x | y

Buzilish

JavaScript-ning yanada yig'iladigan qo'llanilishi uchun destrukturizatsiya sintaksisi tse viraz bo'lib, u massivlar yoki ob'ektlardan ma'lumotlarni o'zgartirishga imkon beradi, massivlar konstruktorlari va ob'ekt literallarini aks ettiruvchi vikorist sintaksis.

var foo = ["bir", "ikki", "uch"]; // hech qanday buzilish yo'q var one = foo; vartwo = foo; var three = foo; // buzilishdan var = foo;

Operatorlar

Bilvosita aytilgan o'zgarishlarni ko'rish uchun o'chirish operatorini burishingiz mumkin, lekin siz o'zgarishlarni, yordam uchun ovozlarni ko'ra olmaysiz.

O'chirish operatori to'xtatilgach, elementning kuchi aniqlanmagan ga o'zgaradi. O'chirish operatori hech qanday operatsiyani amalga oshirish mumkin bo'lmasligi uchun rost deb baholaydi; burilish operatori noto'g'ri, ya'ni operatsiya mumkin emas.

X = 42; o'zgaruvchan = 43; myobj = Yangi raqam(); myobj.h = 4; // Quvvat yaratish h o'chirish x; // rost bo'lsin (o'zgarish aniq aytilganligini ko'rishingiz mumkin) o'chirish y; // noto'g'ri aylantirish (var yordamida o'zgarishlarni ko'rish mumkin emas) Math.PI-ni o'chirish; // noto'g'ri aylantirish (quvvat joyida yoki yo'qligini ko'rishning iloji yo'q) myobj.hni o'chirish; // rostga aylantirish (hokimiyatni ko'rishingiz mumkin) myobjni o'chirish; // rostga aylantiring (siz ovozli ob'ektni aniq ko'rishingiz mumkin)

Massivdagi elementlarni ko‘rish

Massiv elementining ko'rinishi boshqa massiv bilan mos kelmaydi. Misol uchun, agar siz a ni ko'rsangiz, a elementi a dan o'chiriladi va a aniqlanmagan bo'ladi.

Agar o'chirish operatori yordamida massivda element ko'rinsa, u holda berilgan elementning qiymati massivda ko'rinadi. Haqoratli ilovada daraxt ko'rinishi elementi o'chirish operatorining yordami ortida joylashgan. Biroq, daraxtlar elementi manzilsiz qoldiriladi va aniqlanmagan bo'lib aylanadi.

Var daraxtlari = new Array("qizil daraxt", "bay", "sidr", "eman", "zarang"); daraxtlarni yo'q qilish; agar (daraxtlarda 3 ta) ( // aql urilmagan )

Agar siz elementni massivdan tashqarida qoldirishni xohlasangiz, lekin qiymat aniqlanmagan bo'lsa, o'chirish operatori o'rniga aniqlanmagan kalit so'zdan foydalaning. Tajovuzkor butt element daraxtlariga qiymat aniqlanmagan, ammo element massivda qoladi:

Var daraxtlari = new Array("qizil daraxt", "bay", "sidr", "eman", "zarang"); daraxtlar = aniqlanmagan; if (daraxtlarda 3 ta) ( // ushbu kod blokini o'rash )

operator turi

G'alaba operatori instanceof , agar dastur ishlayotgan vaqtda ob'ekt turini tasdiqlash zarur bo'lsa. Masalan, o'chirishda siz qayta ishlanayotgan o'chirish turiga qarab uzumlarni qayta ishlash uchun turli xil dasturiy o'tishlarni yaratishingiz mumkin.

Misol uchun, quyidagi kod theDay Date obyekti ekanligini tekshirish uchun instanceof operatoridan foydalanadi. Agar theDay samarali Sana tipidagi ob'ekt bo'lsa, dastur if iborasini tekshirish uchun kodni topadi.

Var theDay = Yangi sana (1995, 12, 17); if (TheDay instance of Date) ( // tekshirish uchun kod )

Operatorning ustuvorligi

Ustuvorlik operatorlar o'zgaruvchilar sonini hisoblashda í̈x vykonannya tartibini belgilaydi. Siz kamonning yordami uchun operatorlarning ustuvorligini to'lashingiz mumkin.

Quyidagi jadvalda operatorlarning ustuvorligi yuqoridan pastgacha ko'rsatilgan.

3.7-jadval Operatorning ustuvorligi
Operator turi Operatorlar
ob'ektning kuchi .
wicklic, ob'ekt namunasini yaratish () yangi
blokirovka qilish, oshirish ! ~ - +++ -- bekor qilish turi
bir nechta, rozpodil * / %
qo'shimcha, vydnymannya + -
bitli zsv << >> >>>
por_vnyannya, kirish < <= >>= instanceof
hasad == != === !==
bitov-i &
bitove-inklyuziv-yoki ^
bitove-abo |
mantiqiy &&
mantiqiy ||
aqlli (uchlik) operator ?:
diqqatga sazovor joy = += -= *= /= %= <<= >>= >>>= &= ^= |=
koma ,

Teri operatori tomonidan taqdim etilgan qo'shimcha ma'lumotlarni tuzatish uchun ishlatilishi mumkin bo'lgan ushbu jadvalning kattaroq hisobot versiyasi JavaScript-ga ma'lum.

Virazi

Virazomê qiymatni aylantiradigan kodga to'g'ri blok bor yoki yo'qligini.

Kontseptual ravishda viruslarning ikki turi mavjud: o'zgaruvchan qiymat beradigan tí va hech qanday ta'sirsiz qiymatni hisoblaydigan tí.

Viraz x \u003d 7 ê birinchi turdagi virazning dumbasi bilan. Tsei viraz vikoristovu operator= o'zgaruvchining x qiymatining ta'siri uchun 7 . Virazning o'zi ham eski 7.

Kod 3 + 4 - bu boshqa turga tegishli. Tsei viraz vikoristovu operatorNatija 7 ga o'zgartirishni qo'llamasdan 3 va 4 raqamlarini qo'shish uchun "+".

JavaScript-dagi Usy vyrazi quyidagi toifalarga bo'lingan:

Asosiy til

Asosiy kalit so'zlar JavaScript-dagi asosiy virus.

bu operator

Joriy ob'ektga kiritish uchun kalit so'zni moslang. usuli berilishi kerak vyklikaniya ob'êkt haqida vipadku tse vkazuê yilda. Buni shunday tvit qiling:

this["propertyName"] this.propertyName

Misol uchun, funktsiya joriy ob'ekt qiymati qiymatini vikonu revalidation validate; ob'ektning vazifalari, shuningdek, berilgan kuchning yuqori va pastki chegaralari:

Funktsiya validate(obj, lowval, hival)( if ((obj.value))< lowval) || (obj.value >hival)) alert("Noto'g'ri qiymat!"); )

Qadam misolida ko'rsatilganidek, siz teri shakli elementi uchun onChange pastki belgisi uchun validate funksiyasini, shakl elementini tekshirish uchun o'rinbosar funksiyani chaqirishingiz mumkin:

18 dan 99 gacha raqamni kiriting:

Guruhlash operatori

"Arc" guruhlash operatori () viruslarni raqamlash ustuvorligini boshqaradi. Misol uchun, siz tartibni o'zgartirishingiz mumkin - "o'sha gulni ko'paytiring va keyin o'sha vydnimannya qo'shing", shuning uchun, masalan, qo'shimcha ko'plikka o'tdi:

Vara = 1; var b = 2; var c = 3; // asl tartib a + b * c // 7 // har doimgidek g'alaba qozonish, shuning uchun a + (b * c) // 7 // endi tartibni eslang // ko'paytirishga qo'shing (a + b) * c // 9 // bu hujumga teng a * c + b * c // 9

Massivlar va generatorlarni yaratish uchun kechirimlilik sintaksisi

Kechirimlilik sintaksisi - JavaScript-ning eksperimental imkoniyati, ehtimol u ECMAScript-ning kelajakdagi versiyasiga qo'shiladi. Є 2 versiya sintaksisi:

Massivlar uchun kechirimlilik sintaksisi. ((x of y) y uchun) Generatorlar uchun oddiy sintaksis.

Soddalashtirilgan sintaksislar boy dasturlash tiliga asoslanadi va yangi massivni, asoslar asosida tezda tanlash imkonini beradi. Masalan:

) i * i]; // [1, 4, 9] var abc = ["A", "B", "C"]; ; // [ "a", "b", "c" ]

chap tomonlama viruslar

Yomonlik ma'nolari o'ng qo'lning ma'nolari bilan belgilanadi.

yangi

Siz asosiy ob'ektning nusxasini yoki natijada olingan ob'ektlardan birini yaratish uchun yangi operatorni yuborishingiz mumkin. Yangi operatorni quyidagicha belgilang:

Var objectName = New objectType();

super

Batkiv ob'ektining funktsiyalari viki uchun vikoristovuêtsya kalit so'zi. Tse korisno va otasining wiki-dizayneri uchun darslar bilan, masalan.

Super(); // Otaning konstruktorini chaqiring. super.functionOnParent();

Kengaytma operatori

Kengaytirish operatori ko'rinishni argumentsiz (bir nechta funksiyalar uchun) yoki elementlarning nomlarisiz (massivlar uchun) bo'shliqlarda kengaytirish imkonini beradi.

Butt: Bugungi kunda, agar sizda massiv bo'lsa va siz birinchisining asosiy qismiga ega bo'lgan yangisini yaratmoqchi bo'lsangiz, unda massivning literal sintaksisi endi etarli emas va siz imperativ (variantlarsiz) kodni, kombinatsiyani yozishingiz kerak. surish, ulash, ulash va boshqalar. Operator bilan bir vaqtda kod qisqa bo'ladi:

Var qismlari = ["elka", "tizza"]; var lyrics = ["bosh", ...qismlar, "va", "oyoq barmoqlari"];

Operatorning funksiya sikllaridan foydalanishi uchun shunga o'xshash darajani olaylik:

Funktsiya f(x, y, z) ( ) var args = ; f(...args);

Hujjatni tahrirlash

JavaScript interaktiv veb-sahifalarni yaratish uchun ishlatilishi mumkin bo'lgan ixcham operatorlar to'plamini qo'llab-quvvatlaydi. Qaysi bo'limda ushbu operatorlar haqida umumiy ma'lumot berilgan.

Ular uni kimga bo'lishdi, ular uni bo'lishdi, shuning uchun ular teri operatoriga qisqacha qarashadi:

  • Bloklash operatorlari: { }
  • Aqlli operatorlar: agar... boshqaі almashtirish
  • Velosiped operatorlari: for, while, do...while, label, break va davom (teg o'z-o'zidan bu tsikl operatori emas, lekin u ko'pincha belgilangan operatorlardan qaytariladi)
  • Ob'ektlarni boshqarish operatorlari: uchun...inі bilan
  • Izohlar
  • Operatorlar Obrobki Vinyatkiv: harakat qilib ko'ring ... tutingі tashlash
Be-yaky viraz ham operator hisoblanadi. Div. 3-filialda yangi ma'lumotlar operatsiya haqida.

JavaScript kodidagi bayonotlarni ajratish uchun nuqta belgisidan (;) foydalaning.

Div. Core JavaScript kitobida. Xuddi shu tarqatishdagi operatorlar haqida ma'lumotlarni topish.

1. Operator bloki

Operatorlarni guruhlash uchun operatorlar bloki tanlanadi. Sochli jingalak yoylar bloki:

(bayonot 1 bayonot2 ... bayonotn)

2. Aqlli operatorlar

Aqlli operator - bu aql ko'rsatilgandek ishlatiladigan buyruqlar to'plami - rost. JavaScript ikkita aqlli operatorni qo'llab-quvvatlaydi: agar... boshqaі almashtirish.

2.1. agar ... boshqacha bayonot

Butun operator mantiqiy aql sifatida qo'shiqchi operatorlarning g'alabasi uchun g'alaba qozonadi rost; vikorist neob'yopishqoqlik bloki boshqa boshqa operatorlarni, shuningdek, Umovni tomosha qilish uchun yolg'on. if iborasi quyidagicha ko'rinadi:

agar (shart) (bayonotlar 1) [else (bayonotlar2)]

Umov hisoblangan JavaScript virusining qandaydir turi bo'lishi mumkin rost yoki yolg'on. Moslashtiriladigan bayonotlar har qanday JavaScript iboralari, jumladan, joylashtirish bayonotlari bo'lishi mumkin. agar. Qanday qilib har bir operatordan keyin bir nechta operatorni viconate qilish kerak agar yoki boshqa, siz birlashtirilgan qi operatorlarini jingalak kamar () yaqiniga qo'yishingiz kerak.

Siz aqlli operatorning g'alabali oddiy topshirig'ida aybdor emassiz. Masalan, quyidagi kodni teg QILMANG:

Agar siz aqlli operatorda topshiriqni tanlamoqchi bo'lsangiz, tayinlash operatsiyasi uchun qo'shimcha yoylarni kiriting. Masalan, agar((x = y)).

Ibtidoiy bo'lmang Mantiqiy-qiymat rostі yolg'on qadriyatlar bilan rostі yolg'on ob'ekt Mantiqiy. Ma'nosi bo'lmagan ob'ekt bormi aniqlanmagan, null, nol, **NaN** yoki boʻsh qator, jumladan, obyekt Mantiqiy 3 qiymat yolg'on, yilda hisoblangan rost, agar u aqlli operatorga uzatilsa. Masalan:

varb = yangi mantiqiy (noto'g'ri); agar (b) // fikrlash haqiqat deb hisoblanadi

Butt.

Kimning ilovasi funksiyaga ega ma'lumotlarni tekshirish burilish rost, ichidagi belgilar soni sifatida Matn-ob'êktí dorívnyuê uchta; aks holda, oldinga buriling va buriling yolg'on.

checkData funksiyasi () ( agar (hujjat . form1 . threeChar . qiymat . uzunlik == 3 ) ( rost qaytar ) else ( ogohlantirish (" To'liq uchta belgini kiriting." + hujjat . form1 . threeChar . qiymat + " noto'g'ri. ") noto'g'ri qaytaring))

2.2. almashtirish bayonoti

Operator almashtirish Dasturga virusni hisoblash va virus qiymatini case qiymatiga o'rnatishga harakat qilish imkonini beradi. Zbíg paydo bo'lishi bilanoq, dastur operator bilan bog'lanadi. Operator almashtirish shunday ko'rinadi:

switch (ifoda)( ish yorlig'i: bayonot; tanaffus; ish yorlig'i: bayonot; tanaffus; ... standart: bayonot; )

Dastur suhbatlashmoqda teg, bu nimani anglatadi ifoda, va keyin vykonuê stan / operator birlashmalari. Qanday yugurish kerak teg topilmadi standart bayonot Qulflash uchun /operator í, agar topilsa, vykonuê uyushmasi operatori. Yakscho standart bayonot topilmasa, dastur operatorni kuzatishda davom etadi, keyingi operator tugaganidan keyin almashtirish.

Nebov'vyazkovy operatori tanaffus, yorliqli assotsiatsiyalar hol teg, dastur operatorni to'xtatib qo'yishini kafolatlang almashtirish, topilgan zbígu operatori belgilanishi bilanoq u operatorning ishini davom ettiradi, unga operator amal qilishi kerak. almashtirish. Yakscho tanaffus kun, dastur operatorning o'rtasida oldinga operatorni kutishni davom ettiradi almashtirish.

Butt.

Mana, yakscho expr"Banan" ro'yxatida sanab o'tilgan dastur "Banan" holatini bilib oladi va tegishli operatorni tanlang. Tanaffus aniqlanganda dastur buziladi almashtirish bayonot blokidan keyin bu beat bayonoti almashtirish. Yakscho tanaffus vydsutnya, operator in hol"Gilos" ham vikonano bo'lardi.

switch (ifoda) ( "Apelsinlar" holati: hujjat . yozish (" Bir funt apelsin 0,59 dollar.
" ); sindirish ; kassa "Olma" : hujjat. yozish (" Olma bir funt 0,32 dollar.
"); tanaffus; "bananalar" holati: hujjat. yozish (" Bananning bir funti 0,48 dollar.
"); tanaffus; "Gilos" holati: hujjat. yozish (" Bir funt gilos 3,00 dollar.
" ); tanaffus ; sukut bo'yicha : hujjat . yozish (" Kechirasiz, mi z " + i + " .
" ); ) document.write(" Tse sizga "xohlagan narsa" bo'ladimi?
" ) ;

3. Tsikl operatorlari

Velosiped/ halqa operatorlar tse ishga, marta soni kabi doklar aqlga xos. JavaScript tsiklik bayonotlarni qo'llab-quvvatlaydi uchun, qil... esaі esa, shu qatorda; shu bilan birga teg (teg o'z-o'zidan u tsikl operatori emas, lekin u ko'pincha belgilangan operatorlardan qaytariladi). Bundan tashqari, siz operatorlarni yutib olishingiz mumkin tanaffusі davom eting sikllardagi o'rta operatorlar.

Boshqa tsikl operatori uchun...in shuningdek, o'z operatorlarini tsiklik ravishda yutadi, lekin ob'ektlar bilan ishlash uchun ham uradi. Div. Ob'ektlarni manipulyatsiya qiluvchi operatorlar.

3.1. bayonot uchun

Velosiped uchun nuqtalar takrorlanadi, doklar o'ziga xos ma'noga ega yolg'on. JavaScript tsikli uchun tsikllarga o'xshaydi uchun Java va C. Operator uchun shunday ko'rinadi:

uchun ([ initialExpression ] ; [ shart ] ; [ incrementExpression ]) ( bayonotlar )

Agar tsikl uchun vikonuetsya, shunday vydbuvaetsya:

1. Dastlabki virus dastlabki ifoda yakscho ê, vykonuêtsya. Tse viraz zazvichay ínítsíalízuê bir abo ko'proq lichílíníîê siklida va sintaksis virazi be-yakoí buklama imkonini beradi. Shuningdek, siz o'zgarishlarni eshitishingiz mumkin.


2. Shart/ko'nikmalar soni hisoblab chiqiladi. Ma'nosi nima shart - rost, tsikldagi bayonotlar/operatorlarni o'rash. Ma'nosi nima shart - noto'g'ri, tsikl uchun ishni qabul qiling. Yakscho viraz holat povnistyu vídsutnya, priymaêtsya, scho shart - rost.


3. Yakunlash bayonotlar.


4. Viraz incrementExpression yakscho ê, vykonuêtsya va boshqaruv Kroku 2 ga aylanadi.


Butt.

Bu funksiya operatordan qasos olishdir uchun, bu aylantiriladigan ro'yxatdagi tanlangan variantlar soni (ob'ekt Tanlang, bu sizga pozitsiyalar spratini tanlash imkonini beradi). Operator uchun kar o'zgarishi i va uni nolga aylantiring. Vín revyryaє, chi kamroq i ob'ekt variantlari soni Tanlang, vicon operatori agar va o'sishni o'zgartiring i teri tsikliga 1 o'tish uchun.

Ba'zi musiqa turlarini tanlang, so'ng quyidagi tugmani bosing:

"alert("Tanlangan variantlar soni: " + howMany(document.selectForm.musicTypes))">

3.2. Bayonot paytida... bajaring

Operator qil... esa viraz xususiyatlariga qadar takrorlang - yolg'on. Operator qil... esa shunday ko'rinadi:

do (bayonot) while (shart)

bayonot ongni / holatni qayta tekshirishdan oldin bir marta g'alaba qozoning. Yakscho shart - rost, operator yana g'alaba qozonadi. Terini parvarish qilish uchun holat bekor qilinmoqda. Yakscho shart - noto'g'ri, boshqaruv keyin operatorga o'tkaziladi qil... esa.

dumba.

Kimning arizasi tsiklga ega qil kamida bir marta takrorlang va takrorlashlarni qadar takrorlang i Kamroq 5 .

do ( i += 1 ; hujjat . write (i ); ) while (i< 5 ) ;

3.3. while bayonoti

Operator esa shart/aql ko'rsatilganda, o'z operatorlaringizni yutib oling - rost. Operator esa shunday ko'rinadi:

while (shart) (bayonotlar)

Yakscho holat suruv yolg'on, Tsiklning o'rtasida joylashgan operatorlar halqaga biriktiriladi va boshqaruv sikl yonidagi operatorga o'tkaziladi.

Aqlni / holatni qayta tekshirish, tsiklning o'rtasida operatorning oxirigacha tekshiriladi. Yakscho holat burilish rost, operatorlar holat yana pereveryaetsya. Vaziyatni qanday o'zgartirish kerak yolg'on, tsikl biriktirilgandan so'ng, bu boshqaruv operatordan keyin ketadigan operatorga o'tkaziladi esa.

misol 1.

Tsey tsikli esa yana, hali n Kamroq 3 :

n = 0; x = 0; esa (n< 3 ) { n ++; x += n ; }

Teri iteratsiyasi uchun tsikl kattaroqdir n va o'zgartirish uchun qiymat qo'shing x. Otzhe, xі n quyidagi ma'nolarni qabul qiling:

  • Birinchi o'tishdan keyin: n = 1 va x = 1
  • Yana bir o'tishdan keyin: n = 2 va x = 3
  • Uchinchi o'tishdan keyin: n = 3 va x = 6
Vikonannya uchta tsikldan o'tgandan so'ng, holat n< 3 endi to'g'ri emas, bu halqa buziladi.

2-misol: Cheksiz tsikl.

Perekonaytes, scho umova tsikli siz bo'lib yolg'on; Aks holda, tsikl hech qachon to'xtatilmaydi. Hujum siklining operatorlari esa to'xtovsiz ko'z qissangiz, aqlning parchalari bo'lmaydi yolg'on:

while (to'g'ri) (ogohlantirish ("Salom, dunyo"))

3.4. teg bayonoti

Operator tegê identifikator, uni dasturning istalgan joyidan olish mumkin. Misol uchun, siz vikoristati mumkin teg tsiklni aniqlash, keyin esa operatorlarni yutib olish tanaffus yoki davom eting vikonnanni davom ettirish uchun chi tsiklini to'xtatish.

Operator sintaksisi teg shunday ko'rinadi:

teg: bayonot

Qiymatlar teg Yaroqli JavaScript identifikatori boʻlishi mumkin, bu zaxiralangan soʻz emas. Yordam uchun aniqlangan operator/bayonot teg Siz operator bo'lishingiz mumkin.

dumba.

Kimniki teg markLoop tsiklni aniqlash esa.

markLoop : while (theMark == true ) doSomething() ; )

3.5. break bayonoti

G'alaba operatori tanaffus halqani buzish uchun almashtirish yoki yorliqli operator teg.
  • Qanday qilib vikoristsiz tanaffus holda teg, vin negainally eng yaqinini to'xtatadi esa, do-while, uchun yoki almashtirish u ayblovni tajovuzkor operatorga topshiradi.
  • Qanday qilib vikoristsiz tanaffus h teg, vín operatorning texnik xususiyatlarini qayta ko'rib chiqing.
Operator sintaksisi tanaffus shunga o'xshash:

bitta. tanaffus 2. yorlig'ini buzish

Birinchi variant eng yaqin tsiklni to'xtatadi yoki almashtirish; yana bir variant - bu belgi bo'lgan operatorning texnik xususiyatlarini tahlil qilish.

Butt.

Bu erda massiv elementlari uchun iteratsiya hisoblanadi, doklar qiymatlari bo'lgan element indeksi topilmaydi. qiymat:

uchun (i = 0; i< a . length ; i ++ ) { if (a [ i ] = theValue ) break ; }

3.6. bayonotni davom ettirish

Operator davom eting operatorlarni qayta ishga tushirish uchun yutib oling esa, do-while, uchunі teg.
  • Qanday qilib vikoristsiz davom eting holda teg, vín eng yaqin pastadirning oqim iteratsiyasini to'xtatish while, do-while yoki uchun bu g'alabali tsiklni oldinga siljish bilan davom ettiradi. Operator nomini ko'ring uzmoq, davom etmoq tsiklni yana to'xtatmang. Tsiklda esa vinoga boring holat. for tsikli mavjud o'sish ifodasi.
  • Tvitlarni qanday davom ettirasiz? teg tomonidan aniqlangan halqa operatoridan oldin , vin zastosuetsya teg.
Operator sintaksisi davom eting shunga o'xshash:

bitta. 2. davom eting

misol 1.

Tse dumba halqasi esa operator bilan davom eting, qaysi vikonuetsya, qaysi ma'no i bitta 3 . shunday tarzda, n 1, 3, 7 va 12 qiymatlarini oladi.

i = 0; n = 0; esa (ya'ni< 5 ) { i ++; if (i == 3 ) continue ; n += i ; }

dumba 2.

Operator, ma'nolari checkiandj qasos operatori, yak ma'nolari checkj. Nima oshkor bo'ldi davom eting, dastur oqim iteratsiyasini to'xtatadi checkj va rozpochinaê kelayotgan iteratsiya. Shorazu ochilganda davom eting, checkj iteratsiyani yana boshlang, fikringizning doklarini aylantirmang yolg'on. Yakscho aylandi yolg'on, operatorning bir qismi etishmayotgan checkiandjі checkiandj reiteruê, yolg'onga aylanmang. Qanday burilish kerak yolg'on, dastur keyingi operatorni kuzatishda davom etadi checkiandj.

Qanday davom etish mumkin teg uchun checkiandj, dastur operator kobini kuzatishda davom etadi checkiandj.

checkiandj: while (i< 4 ) { document . write (i + "
" ); i += 1 ; checkj : while (j > 4 ) ( hujjat . yozish (j + "
" ); j ​​-= 1 ; agar ((j % 2 ) == 0 ) tekshirish davom etsaj ; hujjat . write (j + " toq.
" ) ; ) hujjat .write ( " i = " + i + "
" ) ; hujjat .write ( " j = " + j + "
" ) ; }

4. Ob'ektlarni manipulyatsiya qilish operatorlari

JavaScript vikorist operatorlari uchun...inі bilan ob'ektlarni manipulyatsiya qilish uchun.

4.1. uchun... bayonotda

Operator uchun...in Iteruê ob'ektning barcha vakolatlari uchun o'ziga xos o'zgarish. JavaScript-ning teriga yetib borishi uchun maxsus operatorlar talab qilinadi. Operator uchun...in shunday ko'rinadi:

For (ob'ektdagi o'zgaruvchi) (

Butt.

Bu funksiya obyekt nomini argument sifatida qabul qiladi. Keyin keling, ushbu ob'ektning barcha vakolatli organlari uchun harakat qilaylik va qatorni aylantiramiz - hokimiyat nomlari va ularning ma'nosi ro'yxati.

funksiya dump_props (obj, obj_name) (var natija = ""; for (var i in obj) (natija += obj_name + "." + i + " = " + obj [i ] + "
" ) natija += "


"; natijani qaytarish;)

Ob'ekt uchun mashina hokimiyat bilan qilishі model natija shunday bo'ladi:

mashina. make=Ford avtomobili. model = Mustang

4.2. bayonot bilan

Operator bilan blok operatorlarini yozish uchun standart ob'ektni o'rnatadi. JavaScript operatorlar blokining o'rtasida joylashgan nomaqbul nomlarni ko'rib chiqadi va qaysi nomlar qulf ortidagi ob'ektning vakolatlari ekanligini aniqlaydi. Yakshcho malakasiz im'ya ê vlastívístyu, operatorsí yilda tsia vístívíst vikoristovuêtsya; aks holda, mahalliy va global o'zgarishlar g'alaba qozonadi.

with bayonoti quyidagicha ko'rinadi:

bilan (ob'ekt) ( bayonotlar )

Butt.

Mana operator bilan aniq, qanday ob'ekt Matematikaê standart ob'ekt. Operatordan keyingi operatorlar do'zaxga aylantiriladi PI usullariga cosі gunoh ob'ektning spetsifikatsiyasisiz. JavaScript qabul qilish ob'ekti Matematika yak ob'ekti tsikh zvernen.

var a, x, y;; var r = 10 bilan (Math ) ( a = PI * r * r ; x = r * cos (PI ) ; y = r * sin (PI / 2); )

Eslatma:

With iborasining o'zgarishi dasturni o'zgartirish uchun ishlatilishi mumkin.

5. Sharhlar

Sharhlar kodlanganligi sababli ularning nima ekanligini tushuntirish uchun eshitiladi. Sharhlar tarjimon tomonidan e'tiborga olinmaydi. JavaScript Java va C++ uslubidagi izohlarni qoʻllab-quvvatlaydi:
  • Qatordagi qiyshiq chiziqli bir qatorli izoh (//).
  • Bagatoryadkovy ramzlari bilan izoh /* kob va belgilar bilan */ masalan.
dumba.

Axis dumba ikki izoh:

// Bu bir qatorli sharh. /* A tse - bagatorium. Vín siz xazina bo'lishingiz mumkin va bu erga munosib bo'lgan hamma narsani qo'yishingiz mumkin. */

6. Vinyatkiv ishlov berish operatorlari

Siz operator tomonidan aybni chaqirishingiz mumkin tashlash operatorlar bilan yoga bilan shug'ullaning harakat qilib ko'ring ... tuting.

Operator harakat qilib ko'ring ... tuting Vinifikasiya Java vintifikatsiyasi uchun hamdir. Div. "Java Script-ni JavaScript-da qayta ishlash" va "Java-da JavaScript-ni o'chirishni qayta ishlash" nashr etilgan.

6.1. bayonot tashlash

Operator tashlash vikliku vyklyuchennya uchun vikoristovuêtsya. Aybni chaqirganingizda, siz virusni aniqlaysiz, inklyuziya ma'nosini qanday qasos olish kerak:

ifodani tashlash

Keyingi kod bir guruh vinyatkivni chaqiradi.

"Xato 2" ni tashlang; // qator qiymatlaridan vinyetka yaratish otish 42; // 42 qiymatlari uchun vinyetkalarni yarating rostni tashlash; // haqiqiy qiymatlardan nishonlarni yaratish

O'chirish bilan siz ob'ektni belgilashingiz mumkin. Keyin blokdagi ob'ektning kuchiga murojaat qilishingiz mumkin tutmoq. Bosuvchi dumba ob'ektni yaratadi myUserException turi UserException operatordagi g'olib yoga tashlash.

// UserException turidagi obyekt yarating Funktsiya UserException(xabar)(this.message = xabar; this.name = "UserException";) // Ob'ekt namunasini yaratish va chaqirish myUserException = new UserException("Qiymat juda yuqori"); myUserException-ni tashlang;

6.2. urinib ko'ring... catch bayonoti

Operator harakat qilib ko'ring ... tuting operatorlar blokini belgilaydi, ularning vikonatini va spetsifikatsiyasini o'chirish uchun bir yoki bir nechta variantni ko'rsatadi. Yakshcho vinyatok vinik, operator harakat qilib ko'ring ... tuting yoga bilan shug'ullanish.

Operator harakat qilib ko'ring ... tuting blokda yig'ilgan harakat qilib ko'ring, bu bir yoki bir nechta operatorlarni va nol yoki bir nechta bloklarni bildiradi tutmoq, operatorlar bilan nima qilish kerak, blokda tsikl o'chirilganda harakatlarni qanday belgilash kerak harakat qilib ko'ring. Agar siz vikonati blokini istasangiz, Tobto harakat qilib ko'ring va g'alaba qozonmang, siz boshqaruvni blokga o'tkazasiz tutmoq. Be-like blok operatori kabi harakat qilib ko'ring(yoki blokdan chaqiriladigan funksiya operatori harakat qilib ko'ring) aybni chaqirib, boshqaruv beparvolik bilan blokga o'tkaziladi tutmoq. Yakscho vinjatok emas bulo viclicano, blok tutmoq o'tkazib yubordi. Bloklash nihoyat vikonannya bloklari keyin vikonuetsya harakat qilib ko'ringі tutmoq, lekin operator tugashidan oldin, operator blokidan keyin nima qilish kerak harakat qilib ko'ring ... tuting.

Orqa tomonda operator bor harakat qilib ko'ring ... tuting. Funktsiya chaqiriladi, shuning uchun u qiymatdan kelib chiqqan holda massivdan oy nomini so'raydi, shuning uchun u funktsiyaga uzatiladi. Agar qiymat oyning soniga (1-12) mos kelmasa, ayblov qiymatlardan chaqiriladi "InvalidMonthNo" va bloklash operatori tutmoq o'zgartirishni o'rnating oy nomi ma'nosi "noma'lum".

getMonthName funksiyasi (oy) (mo = oy - 1; // Massiv indeksidan keyingi oy raqamini belgilang (1=Yanvar, 12=Dekabr) var oy = yangi massiv ("Yanvar", "Fevral", "Mar", "Apr", "May", "Iyun", "Iyul", "Avgust", "Sentyabr", "Oktyabr", "Noyabr", "dec"); agar (oylar[mo] != null) (qaytgan oylar[oy]) boshqacha ("InvalidMonthNo"ni tashlang)) urinib ko'ring ( // Vikonati tsí operatorlarini sinab ko'ring: monthName = getMonthName(meningMonth) // funktsiya ayblashi mumkin) catch (e) (monthName = "noma'lum" logMyErrors (e) // vinyetkalar deb atalgan ob'ekt vinyetkalar yig'uvchisiga uzatiladi}

otish; Vinyaty ga qo'ng'iroq qilish haqidagi ma'lumotlarni o'chirish uchun ushbu identifikatorni tvit qilishingiz mumkin. JavaScript bu identifikatorni blokga kirishda har soatda yaratadi tutmoq; identifikator tutmoq; blok tugagandan so'ng tutmoq id endi mavjud emas.

Masalan, keyingi kod aybni chaqiradi. Agar siz aybni yutsangiz, ayb blokga o'tadi tutmoq.

urinib ko'ring ("myException" ni oching // vinyetka yaratish) tuting (e) ( // Har qanday turdagi o'chirishni boshqarish uchun operatorlar logMyErrors(e) // vinyatok avf kollektoriga o'tkaziladi}

Dekilka bloklari tutadi

Yagona operator harakat qilib ko'ring siz aqlli bloklardan o'ch olishingiz mumkin tutmoq, ularning ba'zilaridan terilar ma'lum turdagi inklyuziya bilan qayta ishlanadi. Shu tarzda, keyingi aqlli blokga kirish tutmoq Siz faqat ushbu blokga xos bo'lgan o'chirish haftasiga yutib olishingiz mumkin. Shuningdek, vibirda okremium blokini yoqishingiz mumkin tutmoq yakuniy blok sifatida ko'rsatilmagan barcha vinyetlar uchun tutmoq operatorda.

Misol uchun, keyingi funksiya boshqa uchta funktsiyani chaqiradi (boshqa joyda ovozli), go'yo ular argumentlarini buzadi. Natijada, qayta tekshirish funktsiyasi qayta tekshirilayotgan komponentning noto'g'ri ekanligini ko'rsatadi, u 0 ga aylantirilmagan, vibratsiyali va qo'shiq ayblovlari funksiyasini chalkashtirib yuboradi.

funksiya getCustInfo (ism , identifikator , email ) ( var n , i , e ; agar (! validate_name (nom )) "InvalidNameException" ni o'tkazing, else n = name ; agar (! validate_id (id )) "InvalidIdException" ni chiqaring else i = ; agar (! validate_email (elektron pochta )) "InvalidEmailException" ni oching else e = email ;cust = (n + " " + i + " " + e );

Aqlli bloklar tutmoq vinyatkívning vidpovidny obrobnikining viklikomini qadrlang.
" ) { // noto'g'ri identifikatorlar uchun qayta qo'ng'iroq bad_id_handler (e)) catch (e if e == "InvalidEmailException") ( // yaroqsiz elektron pochta manzili bad_email_handler (e) ) catch (e) ( // noma'lum cho'chqalar jurnal fayliga yoziladi log xato(e))

nihoyat blokirovka

Blok tugaganidan keyin imzolangan operatorlardan qasos olish uchun nihoyat blokirovka qiling harakat qilib ko'ringі tutmoq, lekin operatorning oxirigacha, operatordan keyin nima qilish kerak harakat qilib ko'ring ... tuting. Bloklash nihoyat vikonuêtsya mustaqil tsgogo ko'rinishida, chi Bulo viklikano vinyatok. Yakshcho vinyatok chaqirdi, operatorlar blokga nihoyat o'sha paytda blok kabi ko'z qisib qo'ying tutmoq aybni o'z zimmasiga olmasdan.

Siz blokni engishingiz mumkin nihoyat o'chirish vaqtida skriptni to'g'ri bajarish uchun; masalan, skript yordamida resurs yuborishingiz kerak bo'lishi mumkin. Haqoratli ilovada fayl ochiladi va operatorlar u ustida ishlaydi (server tomonidagi JavaScript fayllarga kirish imkonini beradi). Qachon o'chirish kerak ochiq faylga, blok nihoyat skript xatolarni tan olishdan oldin faylni yoping.

openMyFile(); harakat qilib ko'ring ( writeMyFile ( theData ) ) nihoyat ( closeMyFile () // resurs har doim yopiladi}

Nesting try...catch bayonotlari

Siz bir yoki bir nechta operatorga hissa qo'shishingiz mumkin harakat qilib ko'ring ... tuting birdan birga. Ichki operator sifatida harakat qilib ko'ring ... tuting bloklamang tutmoq, zbíg-da blok qayta ko'rib chiqiladi tutmoq yoga uchun qasos operatori harakat qilib ko'ring ... tuting.

Bu qator JavaScript ifodalari va operatorlarini, jumladan, tayinlash, taqqoslash, arifmetik, bit, mantiqiy, string, uchlik va boshqalarni tavsiflaydi.

Ma'lumotnomada operatorlar va ifodalarning to'liq va batafsil ro'yxati ham mavjud.

Operatorlar

JavaScript-da operatorlarning yanada rivojlangan turlari mavjud. Ushbu bo'lim operatorlarga eslatish va ustuvorlik operatori haqidagi ma'lumotlarni yangilash uchun mo'ljallangan.

JavaScript ikkalasiga ham ega ikkilik va unary operadorlar va bitta maxsus uchlik operator, shartli operator. Ikkilik operator 2 ta operandni talab qiladi, 1 ta operatordan oldin va 1 ta operatordan keyin:

operand1 operator operand2

Dumba uchun 3+4 yoki x*y .

Sizning bayonotingiz uchun bayonotdan oldin yoki keyin bitta bayonot talab qilinadi:

operator operand operand operator 1/2; // 0,5 1/2 == 1,0/2,0; // bu haqiqat

Standart arifmetik amallarga (+, -, * /) parallel ravishda JavaScript keyingi jadvalda joylashgan arifmetik operatorlarni beradi:

Arifmetik operatorlar
operator Tavsif misol
Qolgan (%) ikkilik operator. 2 operandga bo'lingandan qolgan butun sonni ko'rsatish. 12% 5 2 qaytaradi.
o'sish (++) unar operator. Operandiga bitta qo'shiladi. U, shuningdek, tuzatish operatori (++x) kabi buziladi, funksiyalardan birining qiymatini qo‘shgandan so‘ng qaytadan kashf etadi; Agar u operator optifikatori (x++) sifatida to'xtab qolsa, undan oldingi funksiyaning qiymatini tiklang, masalan. Agar x 3 bo'lsa, ++x x ni 4 ga qo'yadi va 4 ni qaytaradi, x++ esa 3 ni qaytaradi va shundan keyingina x ni 4 ga qo'yadi.
Kamaytirish (--) unar operator. Operanddan bittasini ayiradi. Qaytish qiymati o'sish operatori qiymatiga o'xshaydi. Agar x 3 bo'lsa, --x x ni 2 ga qo'yadi va 2 ni qaytaradi, x-- esa 3 ni qaytaradi va shundan keyingina x ni 2 ga qo'yadi.
Birlik inkor (-) unar operator. Uning operandini inkor qilishni eslatish. Shunday qilib, x 3 ga teng, keyin -x -3 ni qaytaradi.
Birlik ortiqcha (+) unar operator. Operandni raqamga aylantirishga e'tibor bering, agar u hali bo'lmasa. +"3" 3 ni qaytaradi.
+ rost 1ni qaytaradi.
Eksponensial operator (**) Bazadan ko‘rsatkich darajasiga, ya’ni bazaviy ko‘rsatkichga hisoblaydi 2 ** 3 8 ni qaytaradi.
10**-1 0,1 ni qaytaradi.

Bitli operatorlar

Uchrashuv soatida ob'ekt turini tasdiqlashingiz kerakligini tasdiqlang. Misol uchun, agar siz virazi qabul qilsangiz, chiqarilgan istisno turiga qarab kodni o'zgartirishni boshlashingiz mumkin.

Masalan, keyingi kod unga tayinlangan qiymat, ba'zan Date ob'ektining qiymati. Day - Sana ob'ekti bo'lgani uchun if operatoridagi operatorlar bajariladi.

Var theDay = Yangi sana (1995, 12, 17); if (TheDay instance of Date) ( // bajariladigan bayonotlar )

operator ustunligi

The ustunlik operatorlar soni ifodani baholashda ularning qo'llanilishi tartibini aniqlaydi. Yordam uchun qavslarni tekshirish funksiyasini tezlashtirishingiz mumkin.

Keyingi jadvalda eng yuqoridan pastgacha bo'lgan operatorlarning ustuvorligi tasvirlangan.

operator ustunligi
operator turi individual operatorlar
a'zosi .
qo'ng'iroq qilish / misol yaratish () yangi
inkor/ortish ! ~ - +++ -- bekor qilish turi
ko'paytirmoq/bo'lmoq * / %
qo'shish/ayirish + -
bit bo'yicha siljish << >> >>>
aloqador < <= >>= instanceof
Tenglik == != === !==
bitli-va &
bitwise-xor ^
bitli yoki |
mantiqiy-va &&
mantiqiy yoki ||
shartli ?:
topshiriq = += -= *= /= %= <<= >>= >>>= &= ^= |=
vergul ,

Ushbu jadvalning batafsil versiyasi, barcha operatorlar haqida qo'shimcha ma'lumotlar bilan bog'langan, uni JavaScript ma'lumotnomasida topishingiz mumkin.

ifodalar

An ifoda qiymatni hal qiladigan har qanday joriy kod birligidir.

Barcha sintaktik jihatdan yaroqli ifodalar ma'lum bir qiymatga o'tadi, ammo kontseptual jihatdan ikki turdagi ifodalar mavjud: yon ta'sirlar bilan (masalan: o'zgaruvchiga qiymat beradiganlar) va ba'zilarida baholovchi va shuning uchun qiymatni hal qiladiganlar.

x = 7 ifodasi birinchi turdagi misoldir. Bu ifoda = dan foydalanadi operator x o'zgaruvchiga etti qiymatini belgilash uchun. Ifodaning o'zi yettigacha baholanadi.

3 + 4 kodi ikkinchi ifoda turiga misoldir. Tsej viraz vikoristovuê + operador uchun ínshoy uch í chotiri dosi holda vídpovídnosti natija, 7, bir o'zgaruvchiga.

JavaScript quyidagi toifalarga kirishi mumkin:

Birlamchi ifodalar

Asosiy kalit so'zlar JavaScript-da bir xil tasvirdir.

bu

Joriy ob'ektga murojaat qilish uchun butun so'zni belgilang. Vu zagalnomu, tse ob'ektni usulda chaqirishni anglatadi. Buni nuqta yoki qavs belgisi bilan ishlating:

this["propertyName"] this.propertyName

Aytaylik, validate deb nomlangan funksiya ob'ekt va yuqori va past qiymatlarni hisobga olgan holda ob'ektning qiymat xususiyatlarini tasdiqlaydi:

Funktsiya validate(obj, lowval, hival) ( if ((obj.value))< lowval) || (obj.value >hival)) console.log("Qiymat noto'g'ri!"); )

Siz har qanday usulda elementni o'zgaruvchan ishlov beruvchi maydoniga qo'ng'iroq qilishingiz va uni haqoratli matnda bo'lgani kabi elementni shakllantirish uchun o'tkazishingiz mumkin:

18 dan 99 gacha raqamni kiriting:

guruhlash operatori

Guruhlash operatori () ifodalardagi baholashning ustuvorligini nazorat qiladi. Misol uchun, birinchi navbatda qo'shishni baholash uchun ko'paytirish va bo'linishni, keyin qo'shish va ayirishni teskari qilishingiz mumkin.

Vara = 1; var b = 2; var c = 3; // standart ustunlik a+b*c//7 / a * c + b * c ga ekvivalent // 9

chap tomondagi ifodalar

Baholash uchun qiymatning qiymati uchun qoidalar.

yangi

Siz foydalanuvchi tomonidan belgilangan ob'ekt turini o'rnatish yoki o'rnatilgan ob'ekt turlaridan birini yaratish uchun yangi operatorni burishingiz mumkin. Yangisidan quyidagi tarzda foydalaning:

Var objectName = New objectType();

super

Super kalit so'zi ob'ektning ota-onasidagi funktsiyalarni chaqirish uchun ishlatiladi. Masalan, ota-konstruktorni chaqirish uchun sinflar bilan foydalidir.

Super(); // Asosiy konstruktorni chaqiradi. super.functionOnParent();

tarqalish operatori

Bir nechta argumentlar (funksiya chaqiruvlari uchun) yoki bir nechta elementlar (massiv literallari uchun) kutilayotgan joylarda funksionallikni qabul qilish kengaytirilishi mumkin.

Misol: Hammasi shu, agar sizda massiv bo'lsa va uning qismlaridan biri asosida yangi massiv yaratmoqchi bo'lsangiz, unda adabiy sintaksis etarli emas va siz push , splice , concat va boshqalar kombinatsiyasidan foydalanib, imperativ kodga qaytasiz. . Tarqalgan sintaksis bilan bu juda qisqaroq bo'ladi:

Var qismlari = ["elkalar", "tizzalar"]; var lyrics = ["bosh", ...qismlar, "va", "oyoq barmoqlari"];

Bu qo'ng'iroqlar funksiyasiga ega shved robot operatoriga o'xshaydi:

Funktsiya f(x, y, z) ( ) var args = ; f(...args);

Back on cob javascriptning qisqartmasi.

JavaScript virusi

Mening JavaScript-da ko'rsatmalar va viruslar mavjud.

Ko'rsatmalar qiymatni aylantirmaydi.

Virazi zavzhdi har qanday qiymatni aylantiring. Agar tarjimon virus bilan ishlayotgan bo'lsa, u holda uning qiymatini hisoblab chiqadi va virusni o'z qiymati bilan almashtiradi.

Virazi buvayut o'sha omborni kechir. Iltimos, boshqa viruslarni qo'shmang.

Oddiy viraziv vydnosyasya uchun:

  1. Identifikatorlar: someVar (im'ya change);
  2. Literal: "satr" yoki 675 (raqam yoki son harfi);
  3. Haqiqiy kalit so'zlar, masalan, bu;

Agar tahlilchi identifikatorni ko'rsatsa, birinchi qiymatning qiymatini hisoblash kerak, shuning uchun, masalan, ularni o'zgartirilgan qiymatlar bilan almashtiring.

Literalning qiymati skript kodida yozilganidek bo'ladi.

Operatorlar va yig'iladigan JavaScript

Oddiy viruslarni bir burmada birlashtirish uchun operatorlar yutadi.

Operatorlar:

  • Unary (bitta operand).
  • Ikkilik (ikki operand).
  • Uchlik operator? JavaScript-da (uch operand, faqat bitta uchlik operator).

Operand - operator zastosovuetsya kabi oddiy viraz.

Masalan, "+" qo'shilgan arifmetik operator ikkilik operatordir. Vín podsumovuê livy va o'ng operand va yig'indisini aylantiring.

vardigit = 4+7;

Nutqdan oldin u "=" operatorining yordamidan keyin tayinlanadi. Bu operator o'ng operandning qiymatini hisoblab chiqadi va uni chap operandga belgilaydi.

JavaScript unary plus bo'lishi mumkin, u faqat bitta operandga ega. Unary plus ê emas arifmetik operator, vin operandni raqamga aylantiradi.

Var myVar = "7"; document.write(typeof(myVar) + "
"); // Hujjat qatorida suiiste'mol qilish myVar = + myVar; document.write(typeof(myVar) + "
"); // Hujjat raqamini suiiste'mol qilish

myVar-ning teskari qismi raqamli (raqam) emas, balki satr turining maqsadi (satr) "7" qatori bilan almashtirildi. Unary plus mi operatorining yordami uchun ular satr harfini birinchi raqamga aylantirdilar.

Arifmetik amallar

Arifmetik amallar - barcha turdagi matematik amallar.

Ehtimol, operator % (rozpodiludagi ortiqcha) tushuntirishni talab qiladi. 9 ortiqcha 4 dan 5 ga bo'linadi va operator tomonidan aylantiriladi. Bundan tashqari, yoga modulni qabul qilish deb ataladi. Bir nechta tamsayılar mavjud bo'lganda, robot-operatorning natijasi ham butun son bo'ladi. Suzuvchi nuqtali raqamlar bilan ishlaganda natija suzuvchi nuqtali son bo'ladi.

5.5 % 2.2 = 1.1

Arifmetik operatsiyalar paytida xotira izi mavjud bo'lib, ular to'g'ri bo'lmasa, natijalarga olib kelishi mumkin:

  • NaN (Raqam emas) - raqam emas.
  • Cheksizlik - nomuvofiqlik.

Rozpodilni nolga keltirgan o'q:

Var myVar = 0/0; document.write("Qiymatni o'zgartirish: " + myVar + ", yozing: " + typeof(myVar) + "
");

Operatsiyalar

Operatsiyalar virusni to'xtatish bilan bog'liq. Viraz z aqlli operator mantiqiy qiymatni aylantirish - rost yoki noto'g'ri (to'g'ri/noto'g'ri).

To'g'rilash operatsiyalari satrlarda, bude haqida boshqa vaqtda amalga oshirilishi mumkin. To'g'ri natijaga bir fikr - bir xil turdagi ma'lumotlarni berish. Aks holda, JavaScript ma'lumotlarni bir turdan boshqasiga tarjima qilishga harakat qiladi, lekin hech qachon urinmang. Afv qilish uchun bir nechta turdagi o'lponlarni bering.

Ishtirok etish operatsiyalari

Tayinlash operatsiyasining eng aniq qo'llanilishi oddiy tayinlashdir (=). Bu operator (=) o'zgarish qiymatini aniqlash uchun ishlatiladi.

Lekin hali ham past operatsiyalar jalb, yaki ê skorochennyami.

Mantiqiy operatsiyalar

Mantiqiy operatsiyalar ko'pincha JS da if else konstruktsiyasi bilan bog'lanadi. Ushbu dizaynning o'zi robotga ko'rsatiladi. Ale spochatku perelik mantiqiy operatorsív.

Endi eng oddiy qo'llaniladi:

Agar (to'g'ri && rost) document.write("Ishlaydimi!"
"); agar (to'g'ri || noto'g'ri) document.write("Ishlaydimi!
"); if (!false) document.write("Ishlaydimi!
");

Keling, ko'rib chiqaylik:

Mantiqiy I operatori (&&) haqiqat operandiga nisbatan haqorat sifatida haqiqatni aylantiradi.

Mantiqiy ABO operatori (||) bitta operand rost bo'lsa ham rost bo'ladi.

Mantiqiy NOT operatori (!) bitta operandni qabul qiladi va orqa tarafdagi rost/bema'nilik qiymatini o'zgartiradi.

Birlik operatorlar

Birlik operatorlar - bitta operandli barcha operatorlar. Bunday operatorlarning o'qi:

  • ++ - 1 ga oshirish (o'sish). Ehtimol, prefiks va postfiks, lekin pastroq.
  • -- - 1 ga o'zgartirish (kamaytirish). Ehtimol, prefiks va postfiks, pastga qarang.
  • + - Unary plus.
  • - Birlik minus.

Birlik minus

Unary minus qarama-qarshi belgini qarama-qarshi belgiga o'zgartiradi. Misol uchun, agar siz -100 dasturida yozsangiz, siz faqat sonli 100 unary minusgacha muzlatib qo'yasiz.

Unar minusni qanday mashq qilishni aniq tushunish kerak - siz operandning qiymatini qarama-qarshi belgi bilan aylantirasiz. Axis dumba yak to'g'ri vikoristati unary minus:

Var myVar = -100; document.write(-myVar + " - unary minus to'plam, lekin o'zgartirish ham = " + myVar + ").
"); myVar = -myVar; document.write("Endi o'zgartirish = "+ myVar +".
");

Keling, qo'l ostidagi unary minusning ahmoq dumbasini maqsad qilaylik. Men vinolarning ranglarini hisobga olgan holda korisny qilaman deb o'ylayman:

Var myVar = -100; document.write(--myVar + "pastki unar minus emas, balki butun o'sishdir."
"); document.write("Endi o'zgartirildi = "+ myVar + ").
"); document.write(-(-myVar) + "lekin bu unary minusga bog'liq emas.
");

Unary plus

Unary plyus kundalik matematik diyotni buzmaydi. Vín so'zma-so'zdan raqamli turga o'ting.

Var myVar = "78687"; document.write(typeof(myVar) + "."
"); myVar = + myVar; document.write(typeof(myVar) + ".
");

O'sish va kamaytirish

Dasturlashda ko'pincha o'zgarish qiymatini bittaga o'zgartirish kerak bo'ladi. Unar operatorlar qaysilar uchun:

  • ++ - 1 ga oshirish (o'sish).
  • -- - 1 ga o'zgartirish (kamaytirish).

Vídminu víd unary plyus va minus o'sish va kamayish bo'yicha burilishdagi o'zgarish qiymatini o'zgartiring.

Var myVar = 10; document.write(++myVar + "."
"); document.write (myVar + ").
");

Kamaytirish (--) shunga o'xshash.

Endi ushbu operatorlarning prefiks va postfikslarni almashtirishlarini ko'rib chiqamiz.

  • ++ myVar - prefiks 1 ga oshadi.
  • myVar++ - postfiks 1 ga oshirilmagan.

Narxi shunday:

  • Bu operatorlarning prefiksli o'zgaruvchisi birinchi navbatda unar operatorning qiymati, so'ngra o'zgaruvchining natijasi hisoblanadi.
  • Post-fiksatsiya qilingan, biz birinchi navbatda viruslarni hisoblaymiz, keyin esa unar operatorni (++ yoki -) hisoblaymiz.

Kimga oddiy dumba bilan yordam bera olasiz:

Var myVar = 10; document.write((++myVar + 5) + "."

"); var myVar = 10; document.write((myVar++ + 5) + ".
"); document.write("O'zgartirish =" + myVar + ".
");

O'sish va kamaytirishni faqat 3 ta o'zgartirish bilan o'zgartirishga ruxsat beriladi, ularni raqamli harflarga aylantirish mumkin emas. Ko'rinishidan sodda ko'rinadigan kod ++7 skriptga rahm-shafqat ko'rsatdi.

Boshqa operatorlar

Mening JavaScript-da boshqa operatorlar mavjud:

  • Uchlik (uch operandli) operator

JavaScript-da Virazi kombinatsiyalardir operandlarі operatorlar.

Operatsiyalar virazada ular ustuvorlik qiymatiga qadar ketma-ket g'alaba qozonishadi (bu ustunlik qiymatidan yuqori, tim vin vishchi). Natija, olingan ma'lumotlar turi bilan bir xil turdagi qiymatga ega emas. Masalan, operatsiyalarda operandlarning roli turli xil turlari, lekin aylantiriladigan natija har doim mantiqiy turdagi bo'ladi.

Guruch. 1. JavaScript Virase tuzilishi

Operandi- JavaScript skriptlari tomonidan qayta ishlanadigan ma'lumotlar. Operandlar kabi oddiy ma'lumotlar turlari, shuningdek katlama va boshqa yo'llar bilan bo'lishi mumkin.

Operatorlar- movning Tse ramzlari, yaky danim bilan turli operatsiyalarni vykonuyut. Operatorlar qo'shimcha tinish belgilari yoki kalit so'zlar uchun ro'yxatdan o'tishlari mumkin.

Operandlar soniga qarab operatorlarning quyidagi turlari ajratiladi:
unary- operatsiyada bitta operand ishtirok etadi;
ikkilik- operatsiyada ikkita operand ishtirok etadi;
uchlik- uchta operandni birlashtiradi.

Eng oddiy ifoda shakli tom ma'noda- Qarang, o'z-o'zidan nima muhim, masalan, 100 raqami, "Salom dunyo" qatori. Siz uni viraz bilan ham o'zgartirishingiz mumkin, shunda u nadan í̈y qiymatida hisoblanadi.

Virazi va JavaScript-dagi operatorlar

1. Arifmetik operatorlar

Arifmetik operatorlar matematik operatsiyalar uchun ishlatiladi, ular raqamli operandlar (yoki raqamli qiymatni qabul qiladigan o'zgartirish) bilan ishlatiladi, natijani raqamli qiymatga aylantiradi.

Operandlardan biri ketma-ket turgandek, JavaScript tarjimoni uni raqamli turga aylantirishga harakat qiladi va keyin biz operatsiyani o'zgartiramiz. Agar natija NaN (raqam emas) bo'lsa, turdagi konversiyalarning paydo bo'lishi mumkin emas.

Jadval 1. Arifmetik operatorlar
Operator/operatsiya Tavsif Ustuvorlik
+ Qo'shimcha Raqamli operandlarni qo'shish. Agar operandlardan biri qator bo'lsa, u holda virazu natijasi qator bo'ladi. 12
- Vidnimannya Vykonuê vídnímannya birinchi dan boshqa operand. 12
- Birlik minus Men ijobiy raqamni salbiyga aylantiraman va oldinga va orqaga. 14
* Ko'p Ikki operandni ko'paytiring. 13
/ Podil Birinchi operandni boshqasiga bo'lish. Bo'linish natijasi bir butun bo'lishi mumkin, va suzuvchi nuqtali raqam. 13
Har bir modul uchun % kechikish Qabul qilingan ortiqcha miqdorni hisoblang sog'lom pastki birinchi operand boshqasiga. Zastosovuetsya butun sonlargacha yoqadi, shuning uchun i suzuvchi nuqtali raqamgacha. 13
var x = 5, y = 8, z; z = x + y // 13 ga buriling z = x - y; // -3 ga buriling z = - y; // -8 z = x * y ga buriling; // 40 ga buriling z = x / y; // 0,625 z = y% x ni aylantirish; // 3-burilish

2. Operator va attraksion

operator va attraksion o'zgartirish ma'nosini tayinlash uchun vikoristovuyutsya. Birlashtirilgan operatorlar birinchi va keyingi qiymatni bitta o'zgartirishda saqlashga imkon beradi.

var a = 5; // O'zgaruvchan a raqamli qiymatni jalb qilish 5 var b = "salom"; // o'zgarishga pastki qatorni oling b var m = n = z = 10; // o'zgaruvchan m, n, z raqamli qiymatlarni jalb qilish 10 x + = 10; // teng x = x + 10; x -= 10; // teng x = x – 10; x * = 10; // teng x = x * 10; x /= 10; // teng x = x/10; x% = 10; // teng x = x%10;

3. O'sish va kamaytirish operatorlari

Operatsiyalar oshirish va kamaytirishê unary va operand qiymatini bittaga oshiradi va o'zgartiradi. Operand kabi, massivga element, ob'ektning kuchi o'zgartirilishi mumkin. Ushbu operatsiyalarning aksariyati tsikldagi lichnik miqdorini oshirish orqali amalga oshiriladi.

var x = y = m = n = 5, z, s, k, l; z = ++x * 2; /* Keyin aylanish qiymatlarini hisoblang z = 12, x = 6, keyin. x qiymati 1 ga oshiriladi, keyin esa ko'paytirish operatsiyasi */s = y++*2; /* Keyin s = 10, y = 6 qiymatlarini hisoblang, keyin. ko'paytirish operatsiyasi kamayadi va y ni o'zgartirgandan so'ng, 1 qiymatga o'sish olinadi */ k = --m * 2; // Qiymatlarni aylantirish k = 8, m = 4 l = n-- * 2; // l = 10, n = 4 ga aylantiring

4. Tegishlash operatorlari

Operatorlar mos keladigan operandlar uchun mos keladigan bo'lsa, moslik natijasi ikkita qiymatdan biri bo'lishi mumkin - rost yoki noto'g'ri. Operandlar nafaqat raqamlar, balki qatorlar bo'lishi mumkin, mantiqiy qiymatlar o'sha ob'ekt. Prote por_vnyannya faqat raqamlar va qatorlar uchun vikonuvatsya bo'lishi mumkin, shuning uchun raqamlar va qatorlar kabi operandlar o'zgartiriladi.

Ikkala operandni ham raqamlar yoki satrlarga muvaffaqiyatli aylantirib bo'lmagani uchun operatorlar har doim false ga baho berishlari kerak.

Qoidaga ko'ra, operandlar qatorlar/raqamlardir yoki ular qatorlar/raqamlarga aylantirilishi mumkin, ular qatorlar/raqamlar kabi tartiblanadi.

Har safar bitta operand qatorda bo'lsa/qatorga aylantirilsa va oxirgisi raqam bo'lsa/raqamga aylantirilsa, operator qatorni raqamga va aksincha o'zgartirishga harakat qiladi. Agar qator raqam bo'lmasa, u NaN ga o'zgaradi va natija noto'g'ri bo'ladi.

Ko'pgina operatsiyalar dasturlarni kiyinishni tashkil qilish paytida buziladi.

4-jadval
Operator/operatsiya Tavsif Ustuvorlik
== Kapital Revíryaê dví qiymatlari zbíg-da turlarni o'zgartirishga imkon beradi. Agar operandlardan saqlansa, rost, agar ular boshqacha hid bo'lsa, noto'g'ri bo'ladi. 9
!= Mos kelmaslik Haqiqatga aylantiring, chunki operandlar teng emas 9
=== Identifikatsiya Revíryaê ikkita operand "identifikatsiya", keruyuchi suvorim zbígu. Turlarni qayta yozmasdan, teng operandlarga rostni aylantiring. 9
!== Bir xil emas Vikonu reverku identichnosti. Turni o'zgartirmasdan operandlar teng bo'lmasligi uchun rostga aylantiring. 9
> Batafsil Agar birinchi operand boshqasidan katta bo'lsa rost, aks holda noto'g'ri bo'lsin. 10
>= Birdan ortiq Agar birinchi operand boshqasidan kam bo'lmasa rost, aks holda noto'g'ri bo'lsin. 10
Agar birinchi operand boshqasidan kichik bo'lsa, rost, aks holda noto'g'ri bo'lsin. 10
Agar birinchi operand boshqasidan katta bo'lmasa rost, aks holda noto'g'ri bo'lsin. 10
5 == "5"; // Haqiqatni 5-ga aylantiring! = -5,0; // rost 5 ga aylantir === "5"; // noto'g'ri false === noto'g'ri; // Rost bo'l 1! == rost; // Rost bo'l 1! = rost; // false, haqiqiy parchalar 1 3 > -3 ga aylanadi; // rost 3> = "4"; // yolg'onga aylantirish

5. Mantiqiy operatorlar

Mantiqiy operatorlar mantiqiy qadriyatlarni aylantiradigan aqllarni birlashtirishga imkon beradi. Ko'pincha ular aqliy ifodada g'alaba qozonishadi, agar.

(2 < 3) && (3===3); // вернет true, так как выражения в обеих скобках дают true (x < 10 && x >0); // X qiymati 0 dan 10 gacha bo'lishi uchun rostga aylantiring! yolg'on; // rostga aylanadi

6. Bitli operatorlar

Bit operatorlari operandlarni 32-bitli nol va birlik ketma-ketligi sifatida baholang va raqamli qiymatni aylantiring, bu operatsiya natijasini anglatadi o'nta tizim raqamlar. Operandlar kabi sonning butun sonlari ko'rib chiqiladi, operandning kasr qismi ko'rinadi. Bitwise operatsiyalarini buzish mumkin, masalan, robotlar uchun ma'lumotlarni shifrlashda, kirish huquqlarini chegaralashda.

Jadval 6. Bitli operatorlar
Operator/operatsiya Tavsif Ustuvorlik
& Pobitovy I Agar jinoyat qimmatroq bo'lsa 1 , natijada olingan bit qimmatroq 1 . Aks holda, natija 0 dan ortiq bo'ladi. 8
| Pobitovy ABO Operandlardan biri 1-pozitsiyada almashtirilsa, natija 1-pozitsiyada ham 1 bilan almashtiriladi, aks holda 1-pozitsiyadagi natija 0 ga teng bo'ladi. 6
^ VKlyuchne ABO Agar faqat bitta va faqat bitta qiymat har qanday pozitsiyada 1 dan qasos olsa, natija o'sha pozitsiyada 1 ga o'ch oladi, boshqa holatda bu pozitsiyadagi natija 0 bo'ladi. 7
~ Cheklangan Virus qiymatining ikki qiymatli ifodalari bo'yicha bitma-bit sanab o'tish jarayoni tugallandi. Tashqi ifodadan 1 qasos oladigan pozitsiya bo'lsin, u 0 bilan almashtiriladi. Tashqi yo'nalishda 0 dan qasos oladigan pozitsiya bo'ladimi, bu yaxshi 0 . Ijobiy raqamlar 0 dan boshlanadi, manfiy raqamlar -1 dan bugacha ~ n == -(n+1) . 14
Operator birinchi operandning bitlarini boshqa operand tomonidan kiritilgan bit pozitsiyalari soniga qarab chapga o'rnatadi. O'ng qo'lning pozitsiyalarini to'ldirish uchun nollardan foydalaniladi. Natijani chap operand bilan bir xil turga aylantiring. 11
>> Pobitovy zsuv o'ng qo'l Operator birinchi operandning bitlarini boshqa operand tomonidan kiritilgan bit pozitsiyalari sonini o'ng tomonga o'rnatadi. Raqamlar, diapazon o'rtasida zsunuty, ko'rinadi. Natija belgisini saqlash uchun eng yuqori bit (32-chi) o'zgartirilmaydi. Birinchi operand musbat bo'lgani uchun natijaning eski bitlari nollar bilan to'ldiriladi; Birinchi operand manfiy bo'lgani uchun natijaning eski bitlari birlar bilan to'ldiriladi. Bir pozitsiya bo'yicha o'ngdagi Zsuv qiymati 2 ga teng (ortiqchalik bilan) va zsv o'ng tomonli ikkita pozitsiyaga, chiziqqa 4 ga ekvivalent va hokazo. 11
>>> Pobitovy zsuv ko'krak nishonisiz o'ng qo'l Operator birinchi operandning bitlarini boshqa operand tomonidan kiritilgan bit pozitsiyalari sonini o'ng tomonga o'rnatadi. Livoruch birinchi operandning belgisidan mustaqil ravishda nol qo'shadi. Raqamlar, diapazon o'rtasida zsunuty, ko'rinadi. 11
var x = 9, y = 5, z = 2, s = -5, natija; // 9 1001 ga ekvivalent; 5 0101 natijaga teng = x & y; // 1ni aylantirish (0001 ga ekvivalent) natija = x | y; // 13-burilish (1101 ga ekvivalent) natija = x ^ y; // 12-burilish (1100 ga ekvivalent) natija = ~ y; // Burish -6 (1100 ga ekvivalent) natija = x<< y; // вернет 288 (эквивалентно 100100000) result = x >>z; // 2-burilish (10 ga ekvivalent) natija = s >>> z; // 1073741822 ga buriling (111111111111111111111111111110 ga ekvivalent)

7. String operatorlari

Ísnuê kílka operív, yaí pratsyuyut íz maxsus unvonni egallaydi.

"1" + "10"; // "110" "1" + 10 ni aylantiring; // "110" 2 + 5 + "rangli zaytun" ni aylantiring; // "7 rangli zaytun" ni aylantiring "Rangli zaytun" + 2 + 5; // "Rangli zaytun 25" "1" > "10" ni aylantiring; // noto'g'ri "10" ga aylantiring<= 10; // вернет true "СССР" == "ссср"; // вернет false x = "micro"; x+= "soft"; // вернет "microsoft"

8. Maxsus operatorlar

Jadval 8. Maxsus operatorlar
Operator/operatsiya Tavsif Ustuvorlik
. Achchiq uchun Zvernennya Zdiysnyuê ob'ekt sifatiga kirish. 15
, Bir nechta hisoblash Bir qatorda qayd etilgan mustaqil viruslar sonini hisoblash. 1
Massivni indekslash Massiv elementlariga yoki ob'ekt vakolatlariga kirishni yaratadi. 15
() Haftalik vazifalar, guruhlash Funktsiyani chaqiradigan guruh operatsiyalari. 15
typeof Ma'lumotlar turini tayinlaydi Birlik operator operandning ma'lumotlar turini aylantiradi. 14
instanceof Ob'ekt turini qayta tekshirish Operator perevíryaê, chi ê ob'êkt birinchi sinf misoli. Chap operand ob'ekt bo'lishi mumkin, o'ng operand ob'ektlar sinfidan o'ch olishda aybdor. Natija rost bo'ladi, ya'ni ob'ekt chap qo'l, bu o'ng qo'lga tayinlangan sinfning namunasidir, aks holda u noto'g'ri bo'ladi. 10
Sifatning ko'rinishini qayta tekshirishda Xuddi chap operand qator bo'lishi mumkin, lekin qoida massiv yoki ob'ektdir. Agar qiymat ob'ektning kuchi bilan bir xil bo'lsa, natija rote to'g'ri bo'ladi. 10
yangi ob'ektni yaratish Operator arzimas vakolatlarga ega yangi ob'ektni yaratadi, so'ngra uni ishga tushirishning konstruktor funktsiyasini chaqiradi (parametrni o'tkazish). Bundan tashqari, massiv yaratish uchun zastosovuvatsya mumkin. 1
Vidalni o'chirish Operator massivdagi obyekt yoki elementning kuchini ko'rish imkonini beradi. O'chirish muvaffaqiyatli bo'lsa, rost, aks holda noto'g'ri bo'lsin. Elementning paydo bo'lishi vaqtida yoga massivi o'zgarmaydi. 14
void Qiymatsiz virazuning ahamiyati, nimaga aylanishi kerak Operandning qiymatini qaytaruvchi va pastki chegarada aylanadigan unary operator. 14
?: Operatsiya aqliy ifodasi Uchlik operatori oddiy tartibni tashkil qilish imkonini beradi. Virazda uchta operand ishtirok etadi, birinchisi aybdor, lekin mantiqiy qadriyatlar yoki u yangisiga aylanadi, ikkinchisi va uchinchisi - ular qiymatlarmi. Agar birinchi operand rost ga teng bo'lsa, u holda aqlli boshqa operandning qiymatidan xabardor bo'ladi; agar noto'g'ri bo'lsa - uchinchisi. 3
document.write("salom dunyo"); // Salom dunyo qatorini ko'rsatish i = 0, j = 1; // funktsiyani o'zgartirish qiymatlarini oling1(10, 5); // 10 va 5 parametrli wiki function1 funksiyasi var year = ; // typeof (a:1) elementlari bilan massiv yaratish; // "ob'ekt" ni aylantirish var d = new Date(); // yordam konstruktori orqasida yangi ob'ekt yaratish Date() d instanceof Date; // turn true var mycar = (model: "Honda", modeli: "Accord", yil: 2005); mycarda "yasalish"; // rostini aylantiring var obj = new Object (); // bo'sh ob'ekt yaratish var food = ["sut", "non", "go'sht", "zaytun moyi", "pishloq"]; ovqatni yo'q qilish; // Oziq-ovqat x> 10 massividagi to'rtinchi elementni ko'rasizmi? x*2: x/2; // x * 2 qiymatini aylantiring, agar x > 10 bo'lsa, aks holda x / 2

9. JavaScript-dagi sharhlar

Bir qatorli sharh: sharh matnidan oldin // belgisini qo'yish kerak.

© 2022 androidas.ru - Android haqida hamma narsa