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

JavaScript-də Boolean məntiq

JavaScript-in doğruluğu və yanlışlığı necə qiymətləndirdiyini başa düşmək

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

  • JavaScript-də doğruluğu və yanlışlığı başa düşəcəksiniz
  • Şərtlər yaratmaq üçün müqayisə operatorlarını mənimsəyəcəksiniz
  • Mürəkkəb ifadələr üçün məntiqi operatorları öyrənəcəksiniz

01 Doğruluq və yanlışlıq (tip çevrilməsi)

Şərti məntiq yazmadan əvvəl JavaScript-in şərtləri necə qiymətləndirdiyini başa düşmək çox vacibdir. if (şərt) yazdığınız zaman JavaScript həmişə həqiqi Boolean dəyəri almır. Əvəzinə o, ifadəni ToBoolean adlı daxili əməliyyatdan istifadə edərək Boolean-a çevirir.

Falsy dəyərlər

Aşağıdakı dəyərlər falsy hesab olunur - onlar Boolean kontekstində false-a çevrilir:

  • false - Boolean false
  • 0 və -0 - Sıfır rəqəmi (həm müsbət, həm də mənfi)
  • "" və ya '' - Boş mətndə
  • null - Hər hansı dəyərin qəsdən yoxluğunu təmsil edir
  • undefined - Elan edilmiş, amma dəyər təyin edilməmiş dəyişən
  • NaN - "Not a Number", yanlış riyazi əməliyyatların nəticəsi
javascript
// Falsy dəyərlər nümunəsi
// Bunların hamısı falsy-dir
if (false) console.log("Won't run");
if (0) console.log("Won't run");
if ("") console.log("Won't run");
if (null) console.log("Won't run");
if (undefined) console.log("Won't run");
if (NaN) console.log("Won't run");

// Practical example
let userInput = "";
if (userInput) {
  console.log("User entered: " + userInput);
} else {
  console.log("No input provided"); // This will run
}

Truthy dəyərlər

Bütün digər dəyərlər truthy hesab olunur və true-ya çevrilir. Buraya daxildir:

  • İstənilən sıfırdan fərqli rəqəm (mənfi rəqəmlər də daxil olmaqla)
  • İstənilən boş olmayan mətndə (hətta yalnız boşluq olan " ")
  • Bütün obyektlər və massivlər (hətta boş olanlar: {}, [])
  • Bütün funksiyalar
javascript
// Truthy dəyərlər nümunəsi
// Bunların hamısı truthy-dir
if (true) console.log("Runs!");
if (1) console.log("Runs!");
if (-5) console.log("Runs!");
if ("hello") console.log("Runs!");
if (" ") console.log("Runs!");

// Hətta boş massiv də truthy-dir!
if ([]) console.log("Runs!");

// Hətta boş obyekt də truthy-dir!
if ({}) console.log("Runs!");
Niyə bu vacibdirDoğruluq və yanlışlığı başa düşmək düzgün şərti məntiq yazmaq üçün vacibdir. Məsələn, if (userInput) yalnız userInput false olduqda deyil, həmçinin 0, "", null, undefined və ya NaN olduqda da false olacaq. Diqqətli olmasanız, bu səhvlərə gətirib çıxara bilər!

02 Müqayisə operatorları

Müqayisə operatorları idarəetmə axını ifadələrində şərtləri formalaşdıran Boolean ifadələrini yaratmaq üçün istifadə olunur. Onlar iki dəyəri müqayisə edir və true və ya false qaytarır.

Əlaqə Operatorları

Bu operatorlar iki operandın nisbi dəyərini və ya böyüklüyünü müqayisə edir:

  • > (böyükdür) - Sol operand sağdan böyükdürsə true qaytarır
  • < (kiçikdir) - Sol operand sağdan kiçikdirsə true qaytarır
  • >= (böyük və ya bərabərdir) - Sol operand sağdan böyük və ya bərabərdirsə true qaytarır
  • <= (kiçik və ya bərabərdir) - Sol operand sağdan kiçik və ya bərabərdirsə true qaytarır
javascript
// Əlaqə operatorları
let age = 25;

console.log(age > 18);   // true
console.log(age < 18);   // false
console.log(age >= 25);  // true
console.log(age <= 20);  // false

let score = 85;
if (score >= 60) {
  console.log('Keçdiniz!');
}

Bərabərlik Operatorları

JavaScript-də iki növ bərabərlik yoxlaması var:

Sərbəst bərabərlik (==, !=)

Tip çevrilməsindən sonra dəyərləri müqayisə edir. Gözlənilməz nəticələrə gətirib çıxara biləcəyi üçün ehtiyatla istifadə edin.

  • == (sərbəst bərabərlik) - Tip çevrilməsindən sonra dəyərlər bərabərdirsə true qaytarır
  • != (sərbəst bərabərsizlik) - Tip çevrilməsindən sonra dəyərlər bərabər deyilsə true qaytarır

Sərt bərabərlik (===, !==) - tövsiyə olunur

Heç bir çevirmə olmadan həm dəyəri, həm də tipi müqayisə edir. Bu, əksər müqayisələr üçün tövsiyə olunan yanaşmadır.

  • === (sərt bərabərlik) - Yalnız dəyərlər və tiplər eyni olduqda true qaytarır
  • !== (sərt bərabərsizlik) - Dəyərlər və ya tiplər fərqlidirsə true qaytarır
javascript
// Sərt və Sərbəst bərabərlik

// Strict equality (===) - Fərqli tiplər
console.log(5 === 5);      // true
console.log(5 === "5");    // false - Fərqli tiplər
console.log(0 === false);  // false

// Loose equality (==) - Çevrilmədən sonra eyni dəyər
console.log(5 == "5");     // true - Çevrilmədən sonra eyni dəyər
console.log(0 == false);   // true
console.log("" == 0);      // true - Sərbəst bərabərlikdən qaçın - qarışıq nəticələr!

// Best practice: Use strict equality
let x = "10";
if (x === 10) {
  console.log("x is number 10");
} else if (x === "10") {
  console.log("x is string '10'"); // This runs
}
Ən yaxşı təcrübəXüsusi olaraq tip çevrilməsinə ehtiyacınız olmadıqda həmişə sərt bərabərlikdən (===, !==) istifadə edin. Sərbəst bərabərlik '' == 0-ın true olması və ya '5' == 5-in true olması kimi qarışıq nəticələr verə bilər.

03 Məntiqi operatorlar

Məntiqi operatorlar çoxsaylı şərtləri mürəkkəb Boolean ifadələrinə birləşdirməyə imkan verir. Onlar həddindən artıq yuvalama olmadan effektiv şərti məntiq yazmaq üçün vacibdir.

Məntiqi VƏ (&&)

Qarşılaşdığı ilk falsy dəyəri və ya hamısı truthy olarsa son dəyəri qaytarır. Tez-tez çoxsaylı şərtlərin hamısının doğru olub-olmadığını yoxlamaq üçün istifadə olunur.

javascript
// VƏ operatoru (&&)
let age = 25;
let hasLicense = true;

// hər ikisi doğrudur
if (age >= 18 && hasLicense) {
  console.log("Can drive"); // This runs
}

// birincisi false-dur - false qaytarır
let age2 = 16;
if (age2 >= 18 && hasLicense) {
  console.log("Won't run");
}

// Short-circuit: right side not evaluated
let x = null;
if (x !== null && x.length > 0) { // x.length never evaluated!
  console.log("Has content");
}
Qısa-dövrə qiymətləndirməsiƏgər birinci operand falsy olarsa, JavaScript ikinci operandı ümumiyyətlə qiymətləndirməyəcək. Bu "qısa-dövrə" adlanır və optimallaşdırma və ya səhvlərin qarşısını almaq üçün istifadə oluna bilər.

Məntiqi VƏ YA (||)

Qarşılaşdığı ilk truthy dəyəri və ya hamısı falsy olarsa son dəyəri qaytarır. Tez-tez standart dəyərlər təqdim etmək və ya ən azı bir şərtin doğru olub-olmadığını yoxlamaq üçün istifadə olunur.

javascript
// VƏ YA operatoru (||)
let isWeekend = false;
let isHoliday = true;

// ən azı biri doğrudur
if (isWeekend || isHoliday) {
  console.log("No work today!"); // This runs
}

// hər ikisi false-dur
let sunny = false;
let warm = false;
if (sunny || warm) {
  console.log("Nice weather!");
} else {
  console.log("Stay inside"); // This runs
}

// Default values
let userName = "";
let displayName = userName || "Guest"; // Returns "Guest"
console.log(displayName);
Standart dəyərlər|| operatoru tez-tez ehtiyat dəyərləri təqdim etmək üçün istifadə olunur: let name = userInput || 'Guest'. Ancaq 0 və ya '' kimi falsy dəyərlərlə ehtiyatlı olun.

Məntiqi YOX (!)

Boolean dəyərini tərs çevirir: truthy-ni false-a və falsy-ni true-ya çevirir.

javascript
// YOX operatoru (!)
let isRaining = false;
if (!isRaining) {
  console.log("Enjoy the day!"); // This runs
}

let isEmpty = "";
if (!isEmpty) {
  console.log("String is empty"); // This runs
}

// Double negation converts to boolean
console.log(!!5);        // true
console.log(!!"");       // false
console.log(!!null);     // false

Operatorları Birləşdirmək

Mürəkkəb şərtlər yaratmaq üçün çoxsaylı məntiqi operatorları birləşdirə bilərsiniz. Qiymətləndirmə sırasını idarə etmək üçün mötərizələrdən istifadə edin.

javascript
// Mürəkkəb şərtlər
let age = 16;
let hasPermission = true;

// Using parentheses for clarity
if ((age >= 13 && age <= 19) && hasPermission) {
  console.log('Yeniyetmədir');
}

// Complex condition with multiple operators
let age2 = 20;
let isCitizen = true;
let isRegistered = true;

if (age2 >= 18 && (isCitizen || isRegistered)) {
  console.log('Səs verə bilər');
}

// Without parentheses - follows precedence rules
if (age2 >= 18 && age2 < 65 || age2 >= 65) {
  console.log('Yetkindir');
}
Operator ÜstünlüyüYadda saxlayın: ! (YOX) ən yüksək üstünlüyə malikdir, sonra && (VƏ), sonra || (VƏ YA). Niyyətlərinizi aydın etmək və səhvlərdən qaçmaq üçün mötərizələrdən istifadə edin.

Xülasə

JavaScript-də falsy dəyərlər: false, 0, -0, "", null, undefined və NaN. Bütün digər dəyərlər truthy-dir.
Həm dəyəri, həm də tipi çevirmə olmadan müqayisə etmək üçün sərt bərabərlikdən (===, !==) istifadə edin
Məntiqi operatorlar (&&, ||, !) şərtləri birləşdirməyə və qısa-dövrə qiymətləndirməsindən istifadə etməyə imkan verir
Tip çevrilməsini başa düşmək düzgün şərti məntiq yazmaq üçün vacibdir

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