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('---');
}