JavaScript Academy · Oppitunti

Väljä ja tiukka yhtäsuuruus

Ymmärtäkää ==- ja ===-vertailujen erot.

Oppitunti 2/413 vaihetta

Väljä ja tiukka yhtäsuuruus on ilmainen JavaScript Academy-oppitunti CoddyKitissä. Tämä on oppitunti 2/4. Voit lukea tästä oppimispolusta kokonaan mitkä tahansa 3 oppituntia ilmaiseksi — sen jälkeen CoddyKit PRO avaa kaikki oppitunnit sekä käytännön harjoittelun sisäänrakennetulla koodieditorilla ja ympäri vuorokauden toimivalla tekoälytuutorilla. Oppitunti kuuluu JavaScript Academy-oppimispolkuun, ja edistymisesi synkronoituu verkon ja CoddyKit-sovelluksen välillä. JavaScript Academy-kurssilla on yhteensä 4 oppituntia.

Kaksi yhtäsuuruusoperaattoria

JavaScriptissä on kaksi yhtäsuuruusoperaattoria. Strict equality eli kolme yhtäsuuruusmerkkiä vertailee arvoja ilman muunnosta. Loose equality eli kaksi yhtäsuuruusmerkkiä muuntaa tyypit ennen vertailua.

console.log(1 === 1)
console.log(1 == "1")

Strict equality

Strict equality palauttaa true-arvon vain, kun sekä tyyppi että arvo täsmäävät. Tyyppimuunnosta ei tehdä.

console.log(5 === 5)
console.log(5 === "5")
console.log(true === 1)

Loose equality muuntaa tyyppejä

Loose equality yrittää muuntaa operandit yhteiseen tyyppiin ennen vertailua, mikä voi tuottaa yllättäviä true-tuloksia.

console.log(5 == "5")
console.log(true == 1)
console.log(0 == false)

Luku ja merkkijono

Kun lukua ja merkkijonoa verrataan loose equality -operaattorilla, merkkijono muunnetaan ensin luvuksi.

console.log("10" == 10)
console.log("10" === 10)

Boolean-tyypin muunnos

Loose equality -vertailussa boolean muunnetaan luvuksi, joten true muuttuu luvuksi 1 ja false luvuksi 0 ennen vertailua.

console.log(true == 1)
console.log(false == 0)
console.log(true == 2)

Null ja undefined

Loose equality käsittelee null- ja undefined-arvot keskenään yhtä suurina, mutta ei yhtäsuurina minkään muun arvon, kuten nollan, kanssa.

console.log(null == undefined)
console.log(null === undefined)
console.log(null == 0)

NaN-poikkeus

NaN ei ole kummallakaan operaattorilla yhtäsuuri minkään kanssa, ei edes itsensä kanssa. Tarkistakaa se käyttämällä Number.isNaN-funktiota.

console.log(NaN === NaN)
console.log(NaN == NaN)
console.log(Number.isNaN(NaN))

Olioiden viittaukset

Olioita verrataan viittausten, ei sisällön perusteella. Kaksi erillistä oliota, joilla on samat ominaisuudet, eivät ole koskaan yhtäsuuria.

const a = { x: 1 }
const b = { x: 1 }
console.log(a === b)
console.log(a === a)

Yllättävät loose equality -tulokset

Loose equality voi tuottaa vastoin odotuksia olevia tuloksia. Tyhjä merkkijono on nollan kanssa yhtäsuuri, ja tyhjä taulukko on muunnoksen jälkeen false-arvon kanssa yhtäsuuri.

console.log("" == 0)
console.log([] == false)
console.log("0" == false)

Suosikaa strict equality -vertailua

Useimmat tyylioppaat suosittelevat strict equality -vertailun käyttämistä oletusarvoisesti piilevien tyyppimuunnosvirheiden välttämiseksi. Käyttäkää loose equality -vertailua vain harkitusta syystä.

const value = "42"
if (value === "42") {
  console.log("matched as string")
}

Null- tai undefined-arvon tarkistaminen

Loose equality -vertailulle on yksi hyväksytty käyttötapa: null- ja undefined-arvojen tarkistaminen yhdessä, koska double-equals null -malli kattaa molemmat.

function check(v) {
  if (v == null) {
    return "missing"
  }
  return "present"
}
console.log(check(undefined))
console.log(check(0))

Pikatesti

Testatkaa yhtäsuuruusvertailuja koskevat tietonne.

Kertaus

Kertaus: Kolme yhtäsuuruusmerkkiä välttää tyyppimuunnoksen, kun taas kaksi yhtäsuuruusmerkkiä tekee sen.

  • Strict equality tarkistaa tyypin ja arvon
  • Loose equality muuntaa arvot ensin yhteiseen tyyppiin
  • null on loose equality -vertailussa yhtäsuuri vain undefined-arvon kanssa
  • Suosikaa strict equality -vertailua oletusarvoisesti
console.log(1 === 1)
console.log(1 == "1")
Aloita maksutta

Opi JavaScript tekoälytuutorin avulla — ilmaiseksi

Kirjoita ja suorita oikeaa koodia selaimessa, saa välitöntä apua tekoälytuutorilta ympäri vuorokauden ja jatka siitä, mihin jäit, verkossa tai sovelluksessa.

Kurssit
59
Oppitunnit
200

Usein kysytyt kysymykset

Onko oppitunti ”Väljä ja tiukka yhtäsuuruus” ilmainen?

Kyllä — voit lukea täällä verkossa kokonaan ilmaiseksi mitkä tahansa JavaScript Academy-oppimispolun 3 oppituntia, myös oppitunnin “Väljä ja tiukka yhtäsuuruus”. Sen jälkeen CoddyKit PRO avaa kaikki oppitunnit sekä interaktiiviset harjoitukset sisäänrakennetulla koodieditorilla ja ympäri vuorokauden toimivalla tekoälytuutorilla. JavaScript Academy-kurssilla on yhteensä 4 oppituntia.

Mitä opin oppitunnilla ”Väljä ja tiukka yhtäsuuruus”?

Ymmärtäkää ==- ja ===-vertailujen erot. Harjoittelet JavaScript Academy-aihetta koodilla, jonka suoritat suoraan selaimessa. Ympäri vuorokauden käytettävissä oleva tekoälytuutori vastaa kysymyksiisi oppitunnin aikana.

Tarvitsenko kokemusta aloittaakseni JavaScript Academy-opiskelun?

Aiempi kokemus ei ole tarpeen. CoddyKitin JavaScript Academy-oppimispolku sopii vasta-alkajista edistyneisiin, joten voit aloittaa tästä tai alusta ja edetä omaan tahtiisi. Tämä on oppitunti 2/4.

Kuinka kauan ”Väljä ja tiukka yhtäsuuruus”-oppitunnin suorittaminen kestää?

Useimmat CoddyKitin oppitunnit kestävät noin 5–10 minuuttia. Jokainen oppitunti on lyhyt ja interaktiivinen, joten edistyt tasaisesti ja voit jatkaa siitä, mihin jäit – sekä verkossa että sovelluksessa.

Voinko kirjoittaa ja suorittaa koodia tällä JavaScript Academy-oppitunnilla?

Kyllä. Jokainen JavaScript Academy-oppitunti sisältää sisäänrakennetun koodieditorin, joten voit kirjoittaa ja suorittaa oikeaa koodia suoraan selaimessa ja saada välitöntä palautetta tekoälyltä – paikallista asennusta ei tarvita.

Kaikki tämän kurssin oppitunnit

  1. Totuusarvoiset ja epätotuusarvoiset arvot
  2. Väljä ja tiukka yhtäsuuruus
  3. Implisiittinen tyyppimuunnos operaatioissa
  4. Eksplisiittiset muunnostekniikat
← Takaisin: JavaScript Academy