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ä:

  1. Määrittelemätön tarkoittaa, että muuttuja on ilmoitettu, mutta arvoa ei ole vielä annettu.
  2. ”Nolla” on määritysarvo, joka tarkoittaa “ei arvoa”.
  3. ”Määrittelemätön” ja “nolla” ovat kumpikin alkeellisia.
  4. ”Määrittelemätön” on tyyppiä määrittelemätöntä.
  5. ”Null” on tyyppiobjektia.
  6. JavaScript ei koskaan asettanut arvoksi ”null”, ohjelmoijat käyttävät sitä osoittamaan, että “var” -arvolla ei ole arvoa.
  7. JavaScript asetti määrittelemättömän muuttujan oletusarvoksi ”määrittelemätön”.
  8. ”Undefined” ei ole kelvollinen arvo JSON: ssä (JavaScript Object Notation), kun taas “null” on kelvollinen arvo JSON: ssa.
  9. Voidaan tarkistaa, onko muuttuja määrittelemätön, käyttämällä: muuttujan tyyppi === “määrittelemätön”
  10. Tapa tarkistaa, onko muuttuja nolla käyttämällä: muuttuja === nolla
  11. 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
  12. Arvo “null” edustaa minkään esinearvon tarkoituksellista poissaoloa. Se on yksi JavaScriptin alkeellisista arvoista.
  13. 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.
  14. ”Määrittelemätön” on globaali muuttuja, jonka JavaScript luo suorituksen aikana.
  15. Kun suoritetaan aritmeettinen muuntaminen nollalla, määritetty arvo on 0, tämä muunnos voidaan varmentaa: var v1 = 3 + nolla; konsoli.logi (v1); // 3
  16. ”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 PERUSTEETmäärittelemätönTyhjä
Määritelmämuuttuja on ilmoitettu, mutta sille ei ole vielä annettu arvoaosoitusarvo, joka tarkoittaa ”ei arvoa”
TyyppimäärittelemätönEsine
JSONpätemätönPätevä
luontoMuuttuja ilmoitettu, mutta ei vielä määritettyEsitä esinearvon tarkoituksellista puuttumista
Tarkistaatypeof muuttujaNimi === ”määrittelemätön”muuttujanimi === nolla
AritmeettinenEi numero (NaN) -virhekäsitelty nolla-arvona
VertailuTasa-arvoinen operaattori palaa tottaHenkilöllisyyden operaattori palauttaa väärän
tunnisteVoi olla globaalin objektin ominaisuuden tunnisteEi 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 -

  1. Go vs Java - Hyödyllisiä eroja
  2. Django vs. WordPress -erot
  3. JavaScript vs. C #
  4. XML vs. HTML - mikä on parempi
  5. Java Performance vs Python