Erot määrittelemättömän ja nollan välillä
JavaScriptin muuttujat ovat kuin kaukosäädin, joka tosiasiallisesti hallitsee objektia. Jos kaukosäädintä ei ole ohjelmoitu kontrolloimaan mitään objekteja, se voidaan merkitä nimellä Määrittelemätön. Toisaalta, jos kaukosäädin on ohjelmoitu, mutta et tee mitään, se voidaan määrittää nollaksi. Null on määritysarvo, se voidaan määrittää muuttujalle edustamatta arvoa. Määrittelemätön on tyyppi itsessään, kun taas nolla on objekti. Joten Undefined on erityinen tyyppi, kun taas Null on JavaScriptin kohde.
JavaScript-koodinpätkän alla annetaan, että lähtö on määrittelemätön.
var x;
konsoli.logi (x); ð määrittelemätön |
Jos joku tarkistaa nollatyypin, se tulostaa tulosteen ”objektina” alla olevan JavaScriptin koodinpätkän osoittamalla tavalla:
console.log (typeof null);
ð esine |
Joten voimme sanoa, että Määrittelemätön tarkoittaa muuttujaa, joka on ilmoitettu, mutta muuttujan arvoa ei ole vielä määritelty. Undefined on tyyppiä undefined, joka voidaan tarkistaa JavaScript-koodinpätkän alapuolelta:
var-testi;
Console.log (typeof-testi); ð määrittelemätön |
Voidaan myös julistaa muuttuja ja sitten määrittää sille määrittelemätön kuten alla:
var-testi = määrittelemätön;
Console.log (testi); ð määrittelemätön |
Määrittelemättömät muuttujat alustetaan JavaScriptin oletusarvoksi määrittelemätöntä, kun taas JavaScript ei koskaan aseta arvoon nolla automaattisesti, se on tehtävä ohjelmallisesti.
Head to Head -vertailu määrittelemättömän ja nollan välillä
Alla on kahdeksan suosituinta vertailua Javascript Undefined vs Null -sovelluksen välillä
Keskeiset erot Javascriptin määrittelemättömän ja nollan välillä
Sekä Undefined vs Null ovat suosittuja valintoja markkinoilla; keskustelemme joistakin tärkeimmistä eroista määrittelemättömien ja nolla-arvojen välillä:
- Määrittelemätön tarkoittaa, että muuttuja on ilmoitettu, mutta arvoa ei ole vielä annettu.
- ”Nolla” on määritysarvo, joka tarkoittaa “ei arvoa”.
- ”Määrittelemätön” ja “nolla” ovat kumpikin alkeellisia.
- ”Määrittelemätön” on tyyppiä määrittelemätöntä.
- ”Null” on tyyppiobjektia.
- JavaScript ei koskaan asettanut arvoksi ”null”, ohjelmoijat käyttävät sitä osoittamaan, että “var” -arvolla ei ole arvoa.
- JavaScript asetti määrittelemättömän muuttujan oletusarvoksi ”määrittelemätön”.
- ”Undefined” ei ole kelvollinen arvo JSON: ssä (JavaScript Object Notation), kun taas “null” on kelvollinen arvo JSON: ssa.
- Voidaan tarkistaa, onko muuttuja määrittelemätön, käyttämällä: muuttujan tyyppi === “määrittelemätön”
- Tapa tarkistaa, onko muuttuja nolla käyttämällä: muuttuja === nolla
- Tasa-arvoinen operaattori kohtelee heitä tasa-arvoisina, kun taas Identiteetin operaattori ei kohtele heitä yhtäläisinä. null === määrittelemätön // false null == määrittelemätön // totta
- Arvo “null” edustaa minkään esinearvon tarkoituksellista poissaoloa. Se on yksi JavaScriptin alkeellisista arvoista.
- Null kirjoitetaan kirjaimella: “null”. Se ei ole globaalin objektin ominaisuuden tunniste, kuten ”määrittelemätön” voi olla. ”Nolla” tarkoittaa tunnistamattomuutta, tarkoittaa, että muuttuja osoittaa kohteelle.
- ”Määrittelemätön” on globaali muuttuja, jonka JavaScript luo suorituksen aikana.
- Kun suoritetaan aritmeettinen muuntaminen nollalla, määritetty arvo on 0, tämä muunnos voidaan varmentaa: var v1 = 3 + nolla; konsoli.logi (v1); // 3
- ”Undefined” ei suorita aritmeettista muuntamista kuten “null”, jos yritämme lisätä sen numeroon, saat NaN (ei-a-numero) -virheen.
Vertailutaulukko Ei määritelty vs. nolla
Alla on luettelo pisteistä. Kuvaile Javascript Undefined vs. Null -vertailun vertailua
Määrittelemättömän ja nollan välisen vertailun PERUSTEET | määrittelemätön | Tyhjä |
Määritelmä | muuttuja on ilmoitettu, mutta sille ei ole vielä annettu arvoa | osoitusarvo, joka tarkoittaa ”ei arvoa” |
Tyyppi | määrittelemätön | Esine |
JSON | pätemätön | Pätevä |
luonto | Muuttuja ilmoitettu, mutta ei vielä määritetty | Esitä esinearvon tarkoituksellista puuttumista |
Tarkistaa | typeof muuttujaNimi === ”määrittelemätön” | muuttujanimi === nolla |
Aritmeettinen | Ei numero (NaN) -virhe | käsitelty nolla-arvona |
Vertailu | Tasa-arvoinen operaattori palaa totta | Henkilöllisyyden operaattori palauttaa väärän |
tunniste | Voi olla globaalin objektin ominaisuuden tunniste | Ei globaalin objektin ominaisuuden tunniste |
Johtopäätös - Määrittelemätön vs. nolla
Suurimman osan ajasta ihmiset ymmärtävät väärin eroa määrittelemättömän ja nollan välillä. Jos ero määrittelemättömän ja nollan välillä on edelleen epäselvä, se voi johtaa ongelmiin tietyissä testitapauksissa.
Muuttujan voidaan sanoa olevan määrittelemätön, jos se on ilmoitettu, mutta sille ei ole annettu arvoa. Toisaalta “null” on arvo, joka voidaan määrittää muuttujalle ja joka edustaa “ei arvoa”. Siksi “määrittelemätön” on muuttujatyyppi, jossa “nolla” on objektiarvo.
”Nollaa” pidetään tyhjänä pitäjänä. Se tarkoittaa, että olemme tarkoituksellisesti antaneet arvon muuttujalle ja oletamme siis muuttujalle mitään arvoa. Tarkistettaessa, onko nolla tai määrittelemätön, täytyy olla tietoinen tasa-arvo- (==) ja identiteetti (===) -operaattoreista, koska entiset suorittavat tyypin muuntamisen.
typeof null // object tyyppi määrittelemätön // määrittelemätön null === määrittelemätön // vääriä null == määrittelemätön // totta nolla == nolla // totta nolla === nolla // totta ! nolla // totta isNaN (1 + nolla) // vääriä isNaN (1 + määrittelemätön) // totta |
Joten, kun kyse on tyyppieroista, ”nolla” on objekti, jolla on kelvollinen arvo, jolla ei ole ominaisuuksia, se ei ole muutettavissa ja järjestelmässä on koko ajan yksi ilmentymä. Null-luonne voidaan tarkistaa käyttämällä operaattorin tyyppiä. Tämän operaattorin käyttö antaa tulosteen ”objektina”. Jos käytämme ”tyyppiä” operaattoria objektissa, joka kuuluu määrittelemättömän luettelon kaikkiin kriteereihin, saamme kohdetyypin “määrittelemätön”.
Toinen merkittävä ero määrittelemättömien ja nolla-arvojen välillä voidaan päätellä muuntamalla primitiivisiin tyyppeihin. Tapa, jolla määrittelemätön vs. nolla muunnetaan primitiivisiksi tyypeiksi, on erottelun avainalue. Suoritettaessa aritmeettista muuntamista ”nollalle” määritetty arvo on nolla. ”Määrittelemättömällä” ei kuitenkaan ole tällaista muuntamista. Jos yritämme lisätä numeroon "määrittelemätön", saat virheilmoituksen "Ei numero".
”Tyhjän” käyttö voi olla erittäin kätevä todellisessa tilanteessa. Esimerkiksi - joillakin ihmisillä ei ole keskimmäistä nimeä. Joten tässä tapauksessa on parempi antaa arvo nolla henkilöobjektin keskimmäiselle nimimuuttujalle. Jos joku käyttää keskimmäistä nimimuuttujaa henkilökohtaisessa objektissa ja sen arvo on "määrittelemätön". Sitten ei ole mitään keinoa varmistaa, että kehittäjä unohti alustaa tämän muuttujan tai sillä ei ollut arvoa. Jos se on määritetty nollaksi, se tarkoittaa, että käyttäjä voi helposti päätellä, että keskimmäisellä nimimuuttujalla ei ole arvoa.
Joten yhteenvetona voidaan todeta, että ”nollalla” ja “määrittelemättömällä” on eri merkitys. Vaikka ”nolla” on erityinen avainsana, joka ilmaisee arvon puuttumisen, ”määrittelemätön” tarkoittaa “sitä ei ole”. Joissakin tilanteissa se auttaa erottamaan ”nollan arvon” ja “ilman arvoa”. Kun lähetät päivityksiä luetteloon, ”null” voi tarkoittaa, korvaa tämä kenttä “null”, ja määrittelemätön voi tarkoittaa “älä koske”. Kun kyse on oletustoimintoparametreista: määrittelemätön tarkoittaa ”käytä oletusarvoa” ja nolla tarkoittaa ”käytä nollaa”. Määrittämättä vs. Null JavaScriptillä kahdeksi erilliseksi asiaksi voi olla rehellisesti tuskallinen, mutta jos JavaScriptin kehittäjä on, hän saattaa pitää siitä.
Suositeltava artikkeli
Tämä on ollut opas määrittelemättömän ja nollan välisen suurimman eron suhteen. Tässä keskustellaan myös Javascript Undefined vs Null -erotietojen infografioiden ja vertailutaulukon kanssa. Saatat myös katsoa seuraavia artikkeleita -
- Go vs Java - Hyödyllisiä eroja
- Django vs. WordPress -erot
- JavaScript vs. C #
- XML vs. HTML - mikä on parempi
- Java Performance vs Python