ოპერაციები და ოპერატორები
ოპერაციები
პროგრამირებაში თითქმის ნებისმიერი ქმედება სრულდება ოპერაციების სიმრავლის დახმარებით, ოპერაციცები ჩაწერილია გამოსახულების საშუალებით. გამოსახულება შეიძლება შედგებოდეს ოპერანდებისაგან, ოპერაციის ნიშნისგან და მრგვალი ფრჩხილებისაგან.
ოპერანდების რაოდენობიდან გამომდინარე JavaScript-ში ოპერაია შეიძლება იყოს:
- უნარული - როდესაც ოპერაციაში მხოლოდ ერთ ოპერანდია
- ბინარული - როდესაც ოპერაციაში ორი ოპერანდია
- ტერნარული - როდესაც ოპერაციაში სამი ოპერანდის კომბინაცია არის პირობითი გამოსახულებით
შინაარსობრივი თვალსაზრისით კი ოპერაციები შესაძლებელია დაიყოს შემდეგ სახეებად:
- არითმეტიკული ოპერაციები
- შედარების ოპერაციები
- სტრიქონული ოპერაციები
- ლოგიკური ოპერაციები
- მინიჭების ოპერაციები
არითმეტიკული ოპერაციები
არითმეტიკულ ოპერაციებში იგულისხმება: მიმატება, გამოკლება, გამრავლება, გაყოფა, ნაშთი და ხარისხი.
ოპერატორის სიმბოლო | ოპერაცია | მაგალითი |
---|---|---|
+ | შეკრება | 2+2=4 |
- | გამოკლება | 22-2=20 |
* | გამრავლება | 2*4=8 |
/ | გაყოფა | 22/2=11 |
% | ნაშთი | 8%6=2 |
** | ხარისხი | 2**4=16 |
ინკრემენტ და დეკრემენტ ოპერაციები
ინკრემენტ და დეკრემენტ ოპერაციები წარმოადგენს უნარული ოპერაციების ნიმუშს. ინკრემენტი პასუხისმგებელია გაზარდოს ცვლადისმ ნიშვნელობა ერთის (++i
ან i++
) ხოლო დეკრემენტი პასუხისმგებელია შეამციროს ცვლადის მნიშვნელობა ერთით (--i
ან i--
).
ინკრემენტ, დეკრემენტის i++
და ++i
(როგორც i--
და --i
), ვიზუალურად კი გავს ერთმანეთს ჩანაწერი თუმცა მცირედი განსხვავებები გააჩნია მოქმედებებში. თუ ჩაწერილია ოპერაცია ოპერანდის შემდგომ მაშინ გაზრდა (ან შემცირება) მოხდება მიმდინარე გამოსახულების შემდგომ, ხოლო თუ ოპერაცია ჩწერილია ოპერანდამდე მაშინ ჯერ გაიზრდება(ან შემცირდება) მნიშვნელობა.
მაგალითად:
// შემთხვევა როცა ინკრემენტი ოპერანდის შემდგომ წერია
let i = 0;
console.log(i++); // 0
console.log(i); // 1
// შემთხვევა როცა ინკრემენტი ოპერანდამდე წერია
let j = 0;
console.log(++j); // 1
console.log(j); // 1
// შემთხვევა როცა დეკრემენტი ოპერანდამდე წერია
let k = 0;
console.log(k--); // 0
console.log(k); // -1
// შემთხვევა როცა დეკრემენტი ოპერანდამდე წერია
let l = 0;
console.log(--l); // -1
console.log(l); // -1
შედარების ოპერაციები
შედარების ოპერაციების საშუალებით ხდება სხვადასხვა ტიპის ცვლადების მნიშვნელობების შედარება და მიიღება ორი შედეგი: true
ან false
.
ოპერაციის სიმბოლო | შედარება | მაგალითი | მნიშვნელობა |
---|---|---|---|
== |
უდრის (ტოლია, ექვივალენტურია) | 2 == "2" |
true |
=== |
მკაცრი შედარება (მოწმდება, როგორც მნიშვნელობა ასევე ტიპიც) | 2 === "2" |
false |
!= |
არ უდრის | 4 != "4" |
false |
!== |
მკაცრი არ უდრის (მოწმდება, როგორც მნიშვნელობა ასევე ტიპიც) | 4 !== "4" |
true |
> |
მეტია | 5 > 4 |
true |
< |
ნაკლებია | 5 < 4 |
false |
>= |
მეტია ან ტოლი | 8 >= 8 |
true |
<= |
ნაკლებია ან ტოლი | 8 <= 8 |
true |
სტრიქონული ოპერაციები
ძირითადი სტრიქონული ოპერაცია არის კონკატენაცია (concatenation), რაც გაერთიანებას ნიშნავს. ეს ოპერაცია ახდენს სტრიქონების გაერთიანებას დამატების ოპერაციის (+
) საშუალებით მაგალითად:
console.log('2' + '2'); // "22"
კონკატენაციის დროს არსებობს კერძო შემთხვევები, როცა სტრიქონული ტიპის ელემენტის დამატება ხდება რიცხობრივ ტიპთან, ასეთ დროს ერთიანდება ტექსტურ ტიპად, სხვა არითმეტიკულ ოპერაციებში, სტრიქონები გარდაიქმნება, როგორც რიცხვად თუ მოქმედების შესრულება არითმეტიკულად შეუძლებელია, მაშინ მივიღებთ NaN
მნიშვნელობას. მაგალითები:
console.log('2' + '4' + '5'); // "245"
console.log('2' + 4 + 5); // "245"
console.log(4 + '2' + 5); // "425"
console.log(4 + 5 + '2'); // "92"
console.log('4' - 2); // 2
console.log('8' / 2); // 4
console.log('4' * 4); // 16
console.log('4' ** 4); // 256
console.log('2a' + 1); // "2a1"
console.log('2a' - 1); // NaN
ლოგიკური ოპერაციები
ლოგიკური ოპერაციები შეგვიძლია წარმოვადგინოთ, როგორც ბულის ალგებრა:
- კონიუქცია - ლოგიკური "და", პროგრამირებაში ეწოდება "AND", აღნიშვნა
&&
- დიზუნქცია - ლოგიკური "ან", პროგრამირებაში ეწოდება "OR", აღნიშვნა
||
- უარყოფა - ლოგიკური "უარყოფა", პროგრამირებაში ეწოდება "NOT", აღნიშვნა
!
ლოგიკური მნიშვნელობების, ურთიერთქმედებები:
ლოგიკური "და" ("AND"):
X |
Y |
X && Y |
---|---|---|
true |
true |
true |
true |
false |
false |
false |
true |
false |
false |
false |
false |
ლოგიკური "ან" ("OR"):
X |
Y |
X | | Y |
---|---|---|
true |
true |
true |
true |
false |
true |
false |
true |
true |
false |
false |
false |
ლოგიკური "უარყოფა" ("NOT"):
X |
!X |
---|---|
true |
false |
false |
true |
მინიჭების ოპერაციები
მინიჭების ოპერაციები მიეკუთვნებიან უნარული ოპერაციების ტიპებს, ისევე როგორც ინკრემენტი და დეკრემენტი.
ოპერაციის სიმბოლო | ოპერაცია | მაგალითი | მნიშვნელობა |
---|---|---|---|
= |
მნიშვნელობის მინიჭება | x = 22 |
x = 22 |
+= |
შეკრება და მინიჭება | x +=2 |
x = x + 2 |
-= |
გამოკლება და მინიჭება | x -= 2 |
x = x - 2 |
*= |
გამრავლება და მინიჭება | x *= 2 |
x = x * 2 |
/= |
გაყოფა და მინიჭება | x /= 2 |
x = x / 2 |
%= |
ნაშთი და მინიჭება | x %= 2 |
x = x % 2 |