Արժեքների համեմատում բուլյան տիպի հետ 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('---');
}