Koks skirtumas tarp „Null“ ir „neapibrėžtas“ „JavaScript“?

Koks skirtumas tarp „Null“ ir „neapibrėžtas“ „JavaScript“?

Šiame vadove bus apžvelgtas skirtumas tarp nulis ir neapibrėžtas reikšmės „JavaScript“. Žinant šių dviejų verčių skirtumą svarbu derinant ir kuriant kodą be klaidų.





planšetinio kompiuterio jutiklinis ekranas neveikia tinkamai

Naudokite naršyklės konsolę, kad galėtumėte sekti arba išbandyti šiame vadove aptartus kodo pavyzdžius.





Nulinių ir neapibrėžtų vertybių lygybės palyginimas

„JavaScript“, nulis yra primityvi reikšmė, kuri naudojama norint nurodyti tyčinį objekto vertės nebuvimą, tuo tarpu neapibrėžtas yra primityvi vertė, kuri veikia kaip kintamojo, kuriam nebuvo priskirta reikšmė, vietos rezervavimo ženklas.



Nulinis ir neapibrėžtas vertės yra lygios, lyginant naudojant „JavaScript“ lygybės operatorių.

Naudokite lygybės operatorių ( == ) palyginti, jei nulis ir neapibrėžtas „JavaScript“ reikšmės yra vienodos.



Atidarykite naršyklės konsolę ir įveskite šį kodą, tada paspauskite Įveskite.

null == undefined

Išvestis turėtų suteikti jums kažką panašaus, grąžintą loginę vertę tiesa tiesiog reiškia, kad abi vertės yra lygios.





Sužinokite daugiau: Kaip deklaruoti kintamuosius „JavaScript“

Griežtas lygybės palyginimas

„JavaScript“ taip pat turi tapatybės operatorių ( === ), be lygybės operatoriaus, taip pat žinomas kaip griežtos lygybės operatorius ( == )





Tapatybės operatorius žengia papildomą mylią tikrindamas, ar lyginamųjų verčių tipas yra tas pats. Tai iš esmės reiškia, kad nors dvi vertės yra lygios, jos gali būti ne tapačios arba griežtai lygios, jei jų pagrindiniai tipai skiriasi.

Norėdami patikrinti griežtą lygybę, naudokite trigubą lygybės ženklą, kaip nurodyta toliau.

null === undefined

Aukščiau pateiktos komandos rezultatas suteiks jums loginę vertę klaidinga Kitaip tariant, šios dvi vertės nėra identiškos, nors ir lygios.

Nulinio ir neapibrėžto tipo išsiaiškinimas

Naudokite integruotą „JavaScript“ funkciją tipas() norėdami sužinoti pagrindinį vertės tipą. Funkcija paima vieną vertės parametrą, kurio tipą norite rasti.

Susijęs: Galutinis „JavaScript“ apgaulės lapas

typeof(null)

Nulinė vertė yra tipo objektas kaip matote iš žemiau pateikto rezultato.

Atlikdami panašų testą neapibrėžtas vertė duos jums rezultatą neapibrėžtas .

typeof(undefined)

Darbas su skaičiais

Norėdami sužinoti daugiau skirtumų, atlikite skaičių testą nulis ir neapibrėžtas vertybes. Jei reikšmė yra skaičius, tai reiškia, kad galime su juo atlikti skaitines operacijas.

Yra du pagrindiniai būdai patikrinti, ar „JavaScript“ reikšmė yra skaičius.

1. Naudojant isFinite () funkcija - jei bandoma vertė yra skaičius, funkcija grąžina tiesa ; kitaip jis grįžta klaidinga .

2. Naudojant isNaN () funkcija - jei testuojama vertė yra skaičius, ji grąžina klaidinga ; kitaip jis grįžta tiesa .

Pastaba : isNaN sutrumpintai reiškia „nėra skaičius“.

Kad viskas būtų paprasta, šiame vadove bus naudojama tik isFinite () funkciją, kad patikrintumėte, ar reikšmė yra skaičius, bet nedvejodami pabandykite isNaN () funkcija. Abi šios funkcijos kaip parametrą naudoja vertę, kuria norite atlikti skaičių testą.

isFinite(null)

Rezultatas yra tiesa , reiškia nulis yra tipo vertė skaičius „JavaScript“. Kadangi, atlikdami tą patį testą neapibrėžtas grįžta klaidinga .

isFinite(undefined)

Tipas prievarta

„JavaScript“ yra laisvai įvesta kalba, todėl atlikdama matematines operacijas „JavaScript“ automatiškai konvertuos rezultatą į norimą tipą.

Deja, ši automatinė konversija, kuri paprastai vadinama tipo prievarta, gali atnešti daug netikėtumų.

Vykdykite šią skaitinę operaciją nulis ir neapibrėžtas naršyklės pulte.

1 + null 3 * null 1 + undefined 3 * undefined;

Kaip matote, galite atlikti tam tikras skaitmenines operacijas nulis vertė, nes tai skaičius, neturintis jokios vertės. Todėl tai traktuojama kaip nulis. Įsidėmėkite tai nulis nėra lygus nulis „JavaScript“, tačiau šiuo atveju ji kažkaip traktuojama taip.

Skaitmeninės operacijos neapibrėžtas vertės rezultatas grąžinant NaN (Ne skaičius) reikšmė. Jei nesate rūpestingai gydomas, tai galite patirti vykdymo metu.

Vengti veikimo laiko klaidų

Geras supratimas apie nulis ir neapibrėžtas vertės yra gyvybiškai svarbios siekiant išvengti gamybos laiko klaidų. Klaidos, susijusios su neapibrėžtas vertybes gali būti sunku ištaisyti ir jų geriausia vengti.

Apsvarstykite galimybę naudoti „TypeScript“ stipriai įvestam kodui, kuris sukompiliuotas į „JavaScript“. Naudojant „TypeScript“, jūsų kodas yra tikrinamas kompiliavimo metu, kad sumažėtų gamybos laiko klaidos.

Dalintis Dalintis „Tweet“ Paštu Susijusios temos
  • Programavimas
  • „JavaScript“
  • Kodavimo patarimai
Apie autorių Pasiruošęs(Paskelbti 36 straipsniai)

„Mwiza“ kuria programinę įrangą pagal profesiją ir daug rašo „Linux“ bei priekinio planavimo programomis. Kai kurie jo interesai apima istoriją, ekonomiką, politiką ir įmonių architektūrą.

Daugiau iš Mwiza Kumwenda

Prenumeruokite mūsų naujienlaiškį

Prisijunkite prie mūsų naujienlaiškio, kad gautumėte techninių patarimų, apžvalgų, nemokamų el. Knygų ir išskirtinių pasiūlymų!

Norėdami užsiprenumeruoti, spustelėkite čia