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.
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.
// 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)Çıxma (-), Vurma (*), Bölmə (/)
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ə: InfinityQalıq (%)
Bölmədən sonra qalığı qaytarır (həmçinin modul adlanır).
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.
// 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ə: 103 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.
let x = 10;
let name = 'Alice';
let isActive = true;
console.log(x); // Nəticə: 10Mü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.
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ə: 204 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.
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.
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.
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ə: false05 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.
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ə: falseMəntiqi VƏ YA (||)
ƏN AZI BİR operand true olduqda true qaytarır.
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ə: falseMəntiqi DEYİL (!)
Boolean dəyərini tərs çevirir: true false olur, false true olur.
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.
// &&-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.
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ə: 9Unar plus (+) və inkar (-)
Unar + dəyərləri rəqəmlərə çevirir. Unar - çevirir və mənfi edir.
// 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.
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).
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:
// 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) === 008 Ü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.
// ❌ 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.
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.
// ❌ 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.
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ə: 6Xülasə
Təklifiniz var, səhv və ya xəta tapdınız? Zəhmət olmasa bizimlə əlaqə saxlayın.