Lygybė pagal reikšmę ir tipą JavaScript
Tarkime, norite lyginti taip, kad skaičius kabutėse nebūtų lygus tokiam pat skaičiui be kabučių. Kitaip tariant, norite lyginti taip, kad palyginimas būtų ne tik pagal reikšmę, bet ir pagal duomenų tipą.
Tam vietoj operatoriaus == reikia
naudoti operatorių ===. Tolygiai
kaip ir pavyzdyje, lyginant eilutę '3' ir
skaičių 3, sąlyga bus klaidinga,
kadangi kintamieji, nors ir lygūs pagal reikšmę,
bet nėra lygūs pagal tipą:
if ('3' === 3) {
console.log('+++');
} else {
console.log('---'); // suveiks tai
}
Tačiau lyginant dvi eilutes '3'
sąlyga bus teisinga:
if ('3' === '3') {
console.log('+++'); // suveiks tai
} else {
console.log('---');
}
Taip pat, kaip ir lyginant skaičius:
if (3 === 3) {
console.log('+++'); // suveiks tai
} else {
console.log('---');
}
Skirtumas tarp operatoriaus == ir operatoriaus
=== pasireiškia būtent tada, kai
reikšmės yra vienodos, bet skiriasi duomenų tipas.
Kitais atvejais šie operatoriai veikia
vienodai. Pavyzdžiui, lyginant skirtingus
skaičius, žinoma, išves '---':
if (2 === 3) {
console.log('+++');
} else {
console.log('---'); // suveiks tai
}
Paleisdami kodą, nustatykite, kas bus išvesta į konsolę:
let test1 = '3';
let test2 = '3';
if (test1 == test2) {
console.log('+++');
} else {
console.log('---');
}
Paleisdami kodą, nustatykite, kas bus išvesta į konsolę:
let test1 = '3';
let test2 = '3';
if (test1 === test2) {
console.log('+++');
} else {
console.log('---');
}
Paleisdami kodą, nustatykite, kas bus išvesta į konsolę:
let test1 = 3;
let test2 = '3';
if (test1 == test2) {
console.log('+++');
} else {
console.log('---');
}
Paleisdami kodą, nustatykite, kas bus išvesta į konsolę:
let test1 = 3;
let test2 = '3';
if (test1 === test2) {
console.log('+++');
} else {
console.log('---');
}
Paleisdami kodą, nustatykite, kas bus išvesta į konsolę:
let test1 = 3;
let test2 = 3;
if (test1 === test2) {
console.log('+++');
} else {
console.log('---');
}