Väljä ja tiukka yhtäsuuruus
Ymmärtäkää ==- ja ===-vertailujen erot.
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")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
- Totuusarvoiset ja epätotuusarvoiset arvot
- Väljä ja tiukka yhtäsuuruus
- Implisiittinen tyyppimuunnos operaatioissa
- Eksplisiittiset muunnostekniikat