მნიშვნელობების შედარება ლოგიკურ ტიპთან JavaScript-ში

წინა მაგალითში შედარებისთვის გამოვიყენეთ ოპერატორი ===. ამ შემთხვევაში ჩვენი ცვლადი შედარებული იყო true-თან როგორც მნიშვნელობით, ასევე ტიპით.

ასეთი შედარებისთვის ასევე შეიძლება გამოყენებულ იქნას ოპერატორი ==. თუ ცვლადში test ყოველთვის იქნება ერთ-ერთი მნიშვნელობა true ან false, მაშინ არაფერი შეიცვლება:

javascriptlet test = true; // აქ ვწერთ ან true, ან false

if (test == true) {
  console.log('+++');
} else {
  console.log('---');
}

მაგრამ თუ ცვლადში test შესაძლებელია შევიდეს ნებისმიერი მნიშვნელობა, მაშინ ყველაფერი ბევრად უფრო რთულდება.

ასეთ შემთხვევაში, თუ ცვლადში test არ არის ლოგიკური მნიშვნელობა, მაშინ ეს მნიშვნელობა თავდაპირველად გადაიყვანება ლოგიკურ ტიპში და მხოლოდ ამის შემდეგ შედარებულ იქნება.

მაგალითად, დავუშვათ ცვლადში test არის რიცხვი 1. ამ შემთხვევაში ის თავდაპირველად გარდაიქმნება ლოგიკურ ტიპში, ანუ true-ში. და მხოლოდ ამის შემდეგ შესრულდება შედარება:

javascriptlet test = 1;

if (test == true) {
  console.log('+++'); // ეს შესრულდება
} else {
  console.log('---');
}

მაგრამ, მაგალითად, რიცხვი 0 გარდაიქმნება false-ში. და ჩვენი პირობა შედეგად გამოიტანს 'არასწორია'-ს:

javascriptlet test = 0;

if (test == true) {
  console.log('+++');
} else {
  console.log('---'); // ეს შესრულდება
}

ფაქტობრივად, ასეთი შედარება შესაძლებელია ცხადად გადაიწეროს შემდეგი ფორმით:

javascriptlet test = 1;

if (Boolean(test) == true) {
  console.log('+++');
} else {
  console.log('---');
}
Задание 1

გაიხსენეთ და დაწერეთ, რომელი მნიშვნელობები ლოგიკურ ტიპში გადაყვანისას გვაძლევენ false-ს.

Задание 2

კოდის გაშვების გარეშე, დაადგინეთ, რა გამოიყვანს კონსოლში:

javascriptlet test = 1;
    
if (test == true) {
  console.log('+++');
} else {
  console.log('---');
}
Задание 3

კოდის გაშვების გარეშე, დაადგინეთ, რა გამოიყვანს კონსოლში:

javascriptlet test = 0;
    
if (test == true) {
  console.log('+++');
} else {
  console.log('---');
}
Задание 4

კოდის გაშვების გარეშე, დაადგინეთ, რა გამოიყვანს კონსოლში:

javascriptlet test = 1;
    
if (test == false) {
  console.log('+++');
} else {
  console.log('---');
}
Задание 5

კოდის გაშვების გარეშე, დაადგინეთ, რა გამოიყვანს კონსოლში:

javascriptlet test = 1;
    
if (test != true) {
  console.log('+++');
} else {
  console.log('---');
}
Задание 6

კოდის გაშვების გარეშე, დაადგინეთ, რა გამოიყვანს კონსოლში:

javascriptlet test = '';
    
if (test == false) {
  console.log('+++');
} else {
  console.log('---');
}
Задание 7

კოდის გაშვების გარეშე, დაადგინეთ, რა გამოიყვანს კონსოლში:

javascriptlet test;
    
if (test == true) {
  console.log('+++');
} else {
  console.log('---');
}
Задание 8

კოდის გაშვების გარეშე, დაადგინეთ, რა გამოიყვანს კონსოლში:

javascriptlet test = 3 * 'a';
    
if (test == true) {
  console.log('+++');
} else {
  console.log('---');
}