Eriarvoisuus arvon ja tyypin mukaan JavaScriptissä

Operaattorin != lisäksi on olemassa myös operaattori !==, joka ottaa huomioon tyypin vertailussa. Tarkastellaanpa niiden eroja esimerkkien avulla.

Olkoon operaattorilla != verrattuna kahta lukua 3. Tämä operaattori vertailee arvoja siitä, että ne EIVÄT ole yhtä suuria. Koska arvomme ovat juuri yhtä suuret, ehto on epätosi:

javascriptif (3 != 3) {
  console.log('+++');
} else {
  console.log('---'); // tämä toimii
}

Olkoon nyt yksi arvoistamme lainausmerkeissä. Tässä tapauksessa operaattori != katsoo niiden silti olevan yhtä suuria (koska arvo täsmää, eikä tyyppi ole tärkeä tälle operaattorille) ja ehto on jälleen epätosi:

javascriptif ('3' != 3) {
  console.log('+++');
} else {
  console.log('---'); // tämä toimii
}

Vertailkaamme nyt kahta lukua 3 operaattorilla !==. Se katsoo niiden myös olevan yhtä suuria:

javascriptif (3 !== 3) {
  console.log('+++');
} else {
  console.log('---'); // tämä toimii
}

Mutta jos nyt otamme yhden kolmikoista lainausmerkkeihin, operaattori !== katsoo kolmikkomme eri suuriksi, sillä vaikka niiden arvot täsmäävätkin, niillä on eri tyyppi:

javascriptif ('3' !== 3) {
  console.log('+++'); // tämä toimii
} else {
  console.log('---');
}
Задание 1

Määritä, mitä konsoliin tulostuu ajamatta koodia:

javascriptlet test1 = '3';
let test2 = '3';
    
if (test1 != test2) {
  console.log('+++');
} else {
  console.log('---');
}
Задание 2

Määritä, mitä konsoliin tulostuu ajamatta koodia:

javascriptlet test1 = '3';
let test2 = '3';
    
if (test1 !== test2) {
  console.log('+++');
} else {
  console.log('---');
}
Задание 3

Määritä, mitä konsoliin tulostuu ajamatta koodia:

javascriptlet test1 = 3;
let test2 = '3';
    
if (test1 != test2) {
  console.log('+++');
} else {
  console.log('---');
}
Задание 4

Määritä, mitä konsoliin tulostuu ajamatta koodia:

javascriptlet test1 = 3;
let test2 = '3';
    
if (test1 !== test2) {
  console.log('+++');
} else {
  console.log('---');
}
Задание 5

Määritä, mitä konsoliin tulostuu ajamatta koodia:

javascriptlet test1 = 3;
let test2 = 2;
    
if (test1 !== test2) {
  console.log('+++');
} else {
  console.log('---');
}