Dərs 4 Başlanğıc səviyyə

JavaScript-də operatorlar və ifadələr

Kodunuzda əməliyyatların necə yerinə yetiriləcəyini və ifadələrin necə yaradılacağını öyrənin

Nələri öyrənəcəksiniz

  • Operatorların nə olduğunu və necə işlədiyini başa düşəcəksiniz
  • Arifmetik, təyin və müqayisə operatorlarını mənimsəyəcəksiniz
  • Məntiqi operatorları və şərtləri necə birləşdirəcəyinizi öyrənəcəksiniz
  • Operator prioritetini və ifadələri başa düşəcəksiniz

01 Operatorlar nədir?

Operatorlar dəyərlər (operandlar) üzərində əməliyyatlar yerinə yetirən xüsusi simvollar. Onlar JavaScript-ə hansı əməliyyatı yerinə yetirməli olduğunu söyləyən riyazi simvollar kimidir.

Real həyatdan analoqiyaOperatorları kalkulyatordakı düymələr kimi düşünün: + düyməsi rəqəmləri toplayır, - düyməsi çıxır. JavaScript-də operatorlar eyni şəkildə işləyir, ancaq daha çox müxtəlifliklərlə!

Operator növləri

JavaScript-də hər biri fərqli məqsədə xidmət edən bir neçə operator kateqoriyası var.

02 Arifmetik operatorlar

Arifmetik operatorlar rəqəmlərlə riyazi hesablamalar aparır. Bunlar istifadə edəcəyiniz ən əsas operatorlardır.

Toplama (+)

İki rəqəmi toplayır və ya sətirləri birləşdirir.

javascript
// Rəqəmlər
let sum = 10 + 5;
console.log(sum);        // Nəticə: 15

// Sətirlər
let greeting = 'Hello' + ' ' + 'World';
console.log(greeting);   // Nəticə: Hello World

// Sətir + rəqəm
let mixed = '5' + 3;
console.log(mixed);      // Nəticə: '53' (string)
QeydOperandlardan biri sətir olduqda, + toplama əvəzinə birləşdirir.

Çıxma (-), Vurma (*), Bölmə (/)

javascript
let a = 20;
let b = 4;

console.log(a - b);      // Nəticə: 16 (subtraction)
console.log(a * b);      // Nəticə: 80 (multiplication)
console.log(a / b);      // Nəticə: 5 (division)

// Sıfıra bölmə xəta deyil, Infinity qaytarır.
console.log(10 / 0);     // Nəticə: Infinity

Qalıq (%)

Bölmədən sonra qalığı qaytarır (həmçinin modul adlanır).

javascript
console.log(10 % 3);     // Nəticə: 1
console.log(15 % 4);     // Nəticə: 3
console.log(20 % 5);     // Nəticə: 0

// Rəqəmin cüt/tək olub-olmadığını yoxlamaq və ya dəyərləri dövrə ilə keçmək üçün faydalıdır.
let num = 7;
if (num % 2 === 0) {
  console.log('Even');
} else {
  console.log('Odd');    // Nəticə: Odd
}

Üstlük (**)

Birinci rəqəmi ikincinin qüvvətinə qaldırır.

javascript
// 2 ** 3 deməkdir 2 × 2 × 2
console.log(2 ** 3);     // Nəticə: 8
console.log(5 ** 2);     // Nəticə: 25
console.log(10 ** 0);    // Nəticə: 1

03 Təyin operatorları

Təyin operatorları dəyişənlərə dəyərlər təyin edir və ya yeniləyir. Ən əsası = (sadə təyin)dir.

Əsas təyin (=)

Dəyişənə dəyər təyin edir.

javascript
let x = 10;
let name = 'Alice';
let isActive = true;

console.log(x);          // Nəticə: 10

Mürəkkəb təyin operatorları

Bunlar arifmetik əməliyyatı təyinlə birləşdirir və dəyişənləri yeniləmək üçün qısa yol təqdim edir.

javascript
let score = 10;

score += 5;              // score = score + 5
console.log(score);      // Nəticə: 15

score -= 3;              // score = score - 3
console.log(score);      // Nəticə: 12

score *= 2;              // score = score * 2
console.log(score);      // Nəticə: 24

score /= 4;              // score = score / 4
console.log(score);      // Nəticə: 6

score %= 4;              // score = score % 4
console.log(score);      // Nəticə: 2

04 Müqayisə operatorları

Müqayisə operatorları iki dəyəri müqayisə edir və boolean (true və ya false) qaytarır. Onlar kodunuzda qərar qəbul etmək üçün vacibdir.

Bərabər (==) vs Sərt bərabər (===)

== dəyərlərin bərabər olub-olmadığını yoxlayır (tip çevrilməsi ilə), === isə həm dəyərin HƏM də tipin bərabər olub-olmadığını yoxlayır.

javascript
console.log(5 == '5');   // Nəticə: true (== converts types)
console.log(5 === '5');  // Nəticə: false (=== checks type too)

console.log(5 === 5);    // Nəticə: true
console.log('hi' === 'hi'); // Nəticə: true

💡 Gözlənilməz davranışdan qaçmaq üçün həmişə === istifadə edin.

Bərabər deyil (!=) vs Sərt bərabər deyil (!==)

!= dəyərlərin fərqli olub-olmadığını yoxlayır (tip çevrilməsi ilə), !== isə dəyərin VƏ YA tipin fərqli olub-olmadığını yoxlayır.

javascript
console.log(5 != '5');   // Nəticə: false (with type conversion)
console.log(5 !== '5');  // Nəticə: true (strict, no conversion)

console.log(10 !== 5);   // Nəticə: true

💡 === ilə eyni səbəblərə görə həmişə !== istifadə edin.

Əlaqə operatorları

Dəyərlərin nisbi sırasını və ya ölçüsünü müqayisə edir.

javascript
let age = 25;

console.log(age > 18);   // Nəticə: true
console.log(age < 30);   // Nəticə: true
console.log(age >= 25);  // Nəticə: true
console.log(age <= 20);  // Nəticə: false

05 Məntiqi operatorlar

Məntiqi operatorlar boolean dəyərlərlə işləyir və şərtləri birləşdirmək və ya çevirmək üçün istifadə olunur. Onlar mürəkkəb qərar qəbul etmək üçün kritik əhəmiyyət kəsb edir.

Məntiqi VƏ (&&)

Yalnız HƏR İKİ operand true olduqda true qaytarır.

javascript
let age = 25;
let hasLicense = true;

// Hər iki şərt
console.log(age >= 18 && hasLicense);  // Nəticə: true

let isTired = false;
console.log(age >= 18 && isTired);     // Nəticə: false

Məntiqi VƏ YA (||)

ƏN AZI BİR operand true olduqda true qaytarır.

javascript
let isWeekend = true;
let isHoliday = false;

// Hər hansı şərt
console.log(isWeekend || isHoliday);   // Nəticə: true

let isMorning = false;
let isEvening = false;
console.log(isMorning || isEvening);   // Nəticə: false

Məntiqi DEYİL (!)

Boolean dəyərini tərs çevirir: true false olur, false true olur.

javascript
let isLoggedIn = false;

console.log(!isLoggedIn);              // Nəticə: true
console.log(!true);                    // Nəticə: false
console.log(!false);                   // Nəticə: true

💡 Tez-tez bir şeyin doğru OLMADĞINI yoxlamaq üçün istifadə olunur.

Qısa dövrə qiymətləndirməsi

Məntiqi operatorlar qısa dövrə qiymətləndirməsindən istifadə edir: nəticə müəyyənləşdiyi kimi qiymətləndirməni dayandırırlar.

javascript
// &&-də: birinci dəyər false olarsa, ikinci heç vaxt qiymətləndirilmir
let result = false && console.log('This never runs');

// || -də: birinci dəyər true olarsa, ikinci heç vaxt qiymətləndirilmir
let value = true || console.log('This never runs');

06 Unar operatorlar

Unar operatorlar tək operandla işləyir. Onlar artırma, inkar etmə və ya tipləri yoxlamaq üçün faydalıdır.

Artırma (++) və azaltma (--)

Rəqəmi 1-ə artırır və ya azaldır.

javascript
let x = 5;

// Postfiks (x++): əvvəlcə dəyəri qaytarır, sonra artırır
console.log(x++);        // Nəticə: 5
console.log(x);          // Nəticə: 6

// Prefiks (++x): əvvəlcə artırır, sonra dəyəri qaytarır
let y = 5;
console.log(++y);        // Nəticə: 6
console.log(y);          // Nəticə: 6

// Decrement
let z = 10;
console.log(z--);        // Nəticə: 10
console.log(z);          // Nəticə: 9
QeydFərq ifadədə dəyərdən istifadə edərkən əhəmiyyət kəsb edir.

Unar plus (+) və inkar (-)

Unar + dəyərləri rəqəmlərə çevirir. Unar - çevirir və mənfi edir.

javascript
// Sətirləri rəqəmlərə çevirmək üçün faydalıdır.
console.log(+'42');      // Nəticə: 42 (number)
console.log(+'3.14');    // Nəticə: 3.14 (number)

// Unary negation
console.log(-5);         // Nəticə: -5
console.log(-'10');      // Nəticə: -10 (converts and negates)

typeof operatoru

Dəyərin tipini göstərən sətir qaytarır.

javascript
console.log(typeof 42);          // Nəticə: 'number'
console.log(typeof 'hello');     // Nəticə: 'string'
console.log(typeof true);        // Nəticə: 'boolean'
console.log(typeof undefined);   // Nəticə: 'undefined'
console.log(typeof null);        // Nəticə: 'object' (quirk!)

Unutmayın: typeof null 'object' qaytarır (JavaScript-də bilinən səhvdir).

Əlavə qeydMüasir JavaScript-də bu dərsdə sadalanan operatorlardan əlavə operatorlar da var: Şərti Zəncirlənmə (?.), Null Birləşməsi (??), və Məntiqi Təyin operatorları (&&=, ||=, ??=). Bunlar daha mürəkkəbdir və biz onları orta səviyyə dərsində əhatə edəcəyik.

07 Operator prioriteti

İfadədə bir neçə operator olduqda, operator prioriteti qiymətləndirmə sırasını müəyyən edir. Daha yüksək prioritetli operatorlar əvvəl qiymətləndirilir.

Əsas prioritet qaydaları

  • Mötərizələr () ən yüksək prioritetə malikdir - sıranı idarə etmək üçün onlardan istifadə edin
  • Unar operatorlar (+, -, !, typeof) binar operatorlardan əvvəl gəlir
  • Vurma, bölmə, qalıq (*, /, %) toplama, çıxmadan (+, -) əvvəl
  • Müqayisə operatorları (<, >, <=, >=) bərabərlikdən (==, ===) əvvəl
  • Məntiqi VƏ (&&) məntiqi VƏ YA-dan (||) əvvəl
  • Təyin (=) çox aşağı prioritetə malikdir

Prioritet nümunələri

Operator prioritetinin qiymətləndirməyə necə təsir etdiyinə baxın:

javascript
// Mötərizələr olmadan
let result1 = 2 + 3 * 4;
console.log(result1);    // Nəticə: 14 (not 20!)
// Hesablanır: 2 + (3 * 4)

// Mötərizələrlə
let result2 = (2 + 3) * 4;
console.log(result2);    // Nəticə: 20

let x = 5;
let y = 10;
let z = x + y > 12 && y % 2 === 0;
console.log(z);          // Nəticə: true
// Hesablanır: (5 + 10) > 12 && (10 % 2) === 0
Peşəkar məsləhətŞübhə olduqda, mötərizələrdən istifadə edin! Onlar kodunuzu daha aydın edir və prioritet səhvlərindən qaynaqlanan xətaların qarşısını alır.

08 Ümumi səhvlər

❌ === əvəzinə == istifadə etmək

== ilə tip çevrilməsi gözlənilməz nəticələrə səbəb ola bilər.

javascript
// ❌ Yanlış
console.log(5 == '5');   // Nəticə: true (unexpected!)

// ✅ Düzgün
console.log(5 === '5');  // Nəticə: false

❌ Təyin (=) ilə bərabərliyi (===) qarışdırmaq

Şərtdə = istifadə müqayisə əvəzinə dəyər təyin edəcək.

javascript
let x = 5;

// ❌ Yanlış (assigns 10 to x)
if (x = 10) {
  console.log('This always runs!');
}

// ✅ Düzgün (compares x with 10)
if (x === 10) {
  console.log('This runs when x is 10');
}

❌ Operator prioritetini unutmaq

Operatorları birləşdirərkən mötərizələrdən istifadə etməmək gözlənilməz nəticələr verə bilər.

javascript
// ❌ Yanlış
let result = 2 + 3 * 4;   // 14 (might expect 20)

// ✅ Düzgün
let result = (2 + 3) * 4; // 20 (clear intention)

❌ Artırma operatorlarını başa düşməmək

++x (prefiks) və x++ (postfiks) arasındakı fərq ifadələrdə əhəmiyyət kəsb edir.

javascript
let x = 5;
let y = 5;

console.log(x++);  // Nəticə: 5 (then x becomes 6)
console.log(++y);  // Nəticə: 6 (y becomes 6 first)

console.log(x);    // Nəticə: 6
console.log(y);    // Nəticə: 6

Xülasə

Operatorlar dəyərlər üzərində əməliyyatlar yerinə yetirir: arifmetik (+, -, *, /, %, **), təyin (=, +=, -=), müqayisə (===, !==, <, >) və məntiqi (&&, ||, !)
Tip çevrilməsi problemlərindən qaçmaq üçün həmişə == və != əvəzinə === və !== istifadə edin
Məntiqi operatorlar qısa dövrə qiymətləndirməsindən istifadə edir və şərtləri birləşdirmək üçün vacibdir
Operator prioriteti qiymətləndirmə sırasını müəyyən edir - onu açıq şəkildə idarə etmək üçün mötərizələrdən istifadə edin
Unar operatorlar (++, --, typeof) tək operandla işləyir və xüsusi istifadə halları var

Təklifiniz var, səhv və ya xəta tapdınız? Zəhmət olmasa bizimlə əlaqə saxlayın.