მნიშვნელობების შედარება ლოგიკურ ტიპთან JavaScript-ში
წინა მაგალითში შედარებისთვის გამოვიყენეთ
ოპერატორი ===. ამ შემთხვევაში ჩვენი ცვლადი
შედარებული იყო true-თან
როგორც მნიშვნელობით, ასევე ტიპით.
ასეთი შედარებისთვის ასევე შეიძლება გამოყენებულ იქნას
ოპერატორი ==. თუ ცვლადში test
ყოველთვის იქნება ერთ-ერთი მნიშვნელობა true
ან false, მაშინ არაფერი შეიცვლება:
let test = true; // აქ ვწერთ ან true, ან false
if (test == true) {
console.log('+++');
} else {
console.log('---');
}
მაგრამ თუ ცვლადში test შესაძლებელია
შევიდეს ნებისმიერი მნიშვნელობა, მაშინ ყველაფერი ბევრად
უფრო რთულდება.
ასეთ შემთხვევაში, თუ ცვლადში test
არ არის ლოგიკური მნიშვნელობა, მაშინ ეს მნიშვნელობა
თავდაპირველად გადაიყვანება ლოგიკურ ტიპში და მხოლოდ
ამის შემდეგ შედარებულ იქნება.
მაგალითად, დავუშვათ ცვლადში test
არის რიცხვი 1. ამ შემთხვევაში ის თავდაპირველად
გარდაიქმნება ლოგიკურ ტიპში, ანუ
true-ში. და მხოლოდ ამის შემდეგ შესრულდება შედარება:
let test = 1;
if (test == true) {
console.log('+++'); // ეს შესრულდება
} else {
console.log('---');
}
მაგრამ, მაგალითად, რიცხვი 0 გარდაიქმნება
false-ში. და ჩვენი პირობა შედეგად
გამოიტანს 'არასწორია'-ს:
let test = 0;
if (test == true) {
console.log('+++');
} else {
console.log('---'); // ეს შესრულდება
}
ფაქტობრივად, ასეთი შედარება შესაძლებელია ცხადად გადაიწეროს შემდეგი ფორმით:
let test = 1;
if (Boolean(test) == true) {
console.log('+++');
} else {
console.log('---');
}
გაიხსენეთ და დაწერეთ, რომელი მნიშვნელობები
ლოგიკურ ტიპში გადაყვანისას გვაძლევენ
false-ს.
კოდის გაშვების გარეშე, დაადგინეთ, რა გამოიყვანს კონსოლში:
let test = 1;
if (test == true) {
console.log('+++');
} else {
console.log('---');
}
კოდის გაშვების გარეშე, დაადგინეთ, რა გამოიყვანს კონსოლში:
let test = 0;
if (test == true) {
console.log('+++');
} else {
console.log('---');
}
კოდის გაშვების გარეშე, დაადგინეთ, რა გამოიყვანს კონსოლში:
let test = 1;
if (test == false) {
console.log('+++');
} else {
console.log('---');
}
კოდის გაშვების გარეშე, დაადგინეთ, რა გამოიყვანს კონსოლში:
let test = 1;
if (test != true) {
console.log('+++');
} else {
console.log('---');
}
კოდის გაშვების გარეშე, დაადგინეთ, რა გამოიყვანს კონსოლში:
let test = '';
if (test == false) {
console.log('+++');
} else {
console.log('---');
}
კოდის გაშვების გარეშე, დაადგინეთ, რა გამოიყვანს კონსოლში:
let test;
if (test == true) {
console.log('+++');
} else {
console.log('---');
}
კოდის გაშვების გარეშე, დაადგინეთ, რა გამოიყვანს კონსოლში:
let test = 3 * 'a';
if (test == true) {
console.log('+++');
} else {
console.log('---');
}