Արժեքով և տիպով հավասարություն JavaScript-ում
Ենթադրենք՝ ցանկանում եք համեմատել այնպես, որ չակերտների մեջ առնված թիվը չհավասարվի չակերտներից դուրս նույն թվին: Այլ կերպ ասած՝ ցանկանում եք համեմատել այնպես, որ համեմատությունը լինի ոչ միայն արժեքով, այլև տվյալների տիպով:
Դրա համար == օպերատորի փոխարեն
պետք է օգտագործել === օպերատորը: Հաջորդ
օրինակում '3' տողը և
3 թիվը համեմատելիս պայմանը կլինի կեղծ,
քանի որ փոփոխականները, թեև հավասար են արժեքով,
բայց հավասար չեն տիպով:
if ('3' === 3) {
console.log('+++');
} else {
console.log('---'); // կաշխատի այս մասը
}
Սակայն երկու '3' տողերը համեմատելիս
պայմանը կլինի ճշմարիտ:
if ('3' === '3') {
console.log('+++'); // կաշխատի այս մասը
} else {
console.log('---');
}
Նույնը՝ թվերը համեմատելիս:
if (3 === 3) {
console.log('+++'); // կաշխատի այս մասը
} else {
console.log('---');
}
== օպերատորի և === օպերատորի
տարբերությունն ի հայտ է գալիս հենց այն ժամանակ, երբ
արժեքները նույնն են, բայց տվյալների տիպը տարբեր:
Մնացած դեպքերում այս օպերատորները աշխատում են
նույն կերպ: Օրինակ՝ տարբեր թվեր համեմատելիս,
իհարկե, կարտածվի '---':
if (2 === 3) {
console.log('+++');
} else {
console.log('---'); // կաշխատի այս մասը
}
Առանց կոդը գործարկելու, որոշեք, թե ինչ կարտածվի կոնսոլում:
let test1 = '3';
let test2 = '3';
if (test1 == test2) {
console.log('+++');
} else {
console.log('---');
}
Առանց կոդը գործարկելու, որոշեք, թե ինչ կարտածվի կոնսոլում:
let test1 = '3';
let test2 = '3';
if (test1 === test2) {
console.log('+++');
} else {
console.log('---');
}
Առանց կոդը գործարկելու, որոշեք, թե ինչ կարտածվի կոնսոլում:
let test1 = 3;
let test2 = '3';
if (test1 == test2) {
console.log('+++');
} else {
console.log('---');
}
Առանց կոդը գործարկելու, որոշեք, թե ինչ կարտածվի կոնսոլում:
let test1 = 3;
let test2 = '3';
if (test1 === test2) {
console.log('+++');
} else {
console.log('---');
}
Առանց կոդը գործարկելու, որոշեք, թե ինչ կարտածվի կոնսոլում:
let test1 = 3;
let test2 = 3;
if (test1 === test2) {
console.log('+++');
} else {
console.log('---');
}