Vad är skillnaden mellan null och odefinierad i JavaScript?

Vad är skillnaden mellan null och odefinierad i JavaScript?

Denna guide kommer att titta på skillnaden mellan null och odefinierad värden i JavaScript. Att känna skillnaden mellan dessa två värden är viktigt för att felsöka och skapa felfri kod.





Internet långsamt efter Windows 10 -uppgradering

Använd din webbläsarkonsol för att följa med eller prova kodproverna som diskuteras i den här guiden.





Jämföra jämlikhet mellan noll och odefinierade värden

I JavaScript, null är ett primitivt värde som används för att indikera avsiktlig frånvaro av ett objektvärde, medan odefinierad är ett primitivt värde som fungerar som en platshållare för en variabel som inte har tilldelats ett värde.





Null och odefinierad värden är lika när de jämförs med JavaScript -jämställdhetsoperatören.

Använd jämställdhetsoperatören ( == ) att jämföra om null och odefinierad värdena är lika i JavaScript.



Öppna din webbläsarkonsol och mata in följande kod och tryck sedan på Stiga på.

null == undefined

Utgången ska ge dig något som ser ut så här, det returnerade booleska värdet på Sann betyder helt enkelt att de två värdena är lika.





Läs mer: Hur deklareras variabler i JavaScript

Strikt jämställdhet

JavaScript har också en identitetsoperatör ( === ), även känd som den strikta jämställdhetsoperatören utöver jämställdhetsoperatören ( == )





Identitetsoperatören går den extra milen genom att kontrollera om den underliggande typen av värden som jämförs är densamma. Detta betyder i huvudsak att även om två värden är lika, kanske de inte är identiska eller strikt lika om deras underliggande typer är olika.

För att testa för strikt jämlikhet, använd trippelliketecknet enligt nedan.

null === undefined

Resultatet av kommandot ovan ger dig ett booleskt värde av falsk , Med andra ord är de två värdena inte identiska trots att de är lika.

Ta reda på typen av null och odefinierad

Använd den inbyggda JavaScript-funktionen sorts() för att ta reda på den underliggande typen av ett värde. Funktionen tar en enda parameter för värdet vars typ du vill hitta.

Relaterad: Det ultimata JavaScript -fuskbladet

typeof(null)

Nollvärdet är av typ objekt som du kan se från utmatningen nedan.

Kör ett liknande test på odefinierad värde ger dig ett resultat av odefinierad .

typeof(undefined)

Arbeta med siffror

För att utforska fler skillnader, genomför nummerprovet på null och odefinierad värden. Om ett värde är ett tal innebär det att vi kan utföra numeriska operationer på det.

Det finns två huvudsakliga sätt att testa om ett värde är ett tal i JavaScript.

1. Använda isFinite () funktion - om värdet som testas är ett tal återgår funktionen Sann ; annars återkommer den falsk .

2. Använda isNaN () funktion - om värdet som testas är ett tal returnerar det falsk ; annars återkommer den Sann .

Notera : ärNaN är en förkortning för 'is Not a Number'.

För att hålla sakerna enkla använder den här guiden endast isFinite () funktion för att testa om värdet är ett tal, men prova också isNaN () fungera. Båda dessa funktioner tar det värde du vill köra nummertestet på som en parameter.

isFinite(null)

Resultatet är Sann , mening null är ett värde av typen siffra i JavaScript. Medan man utför samma test den odefinierad returnerar falsk .

isFinite(undefined)

Typ Tvång

JavaScript är ett löst skrivet språk, och på grund av detta kommer JavaScript automatiskt att konvertera resultatet till en typ det vill ha när de utför matematiska operationer.

Tyvärr kan denna automatiska konvertering, som vanligtvis kallas typtvång, medföra många överraskningar.

Kör följande numeriska åtgärd på null och odefinierad i din webbläsarkonsol.

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

Som du kan se kan du utföra några numeriska operationer på null värde eftersom det är ett tal som inte har något värde. Därför behandlas det som en nolla. Observera att null är inte lika med noll- i JavaScript, men det behandlas på något sätt så i det här fallet.

De numeriska operationerna på odefinierad värde resulterar i att returnera NaN (Inte ett tal) värde. Om det inte behandlas noggrant kan du uppleva detta under körning.

Undvik Runtime Bugs

En god förståelse för null och odefinierad värden är avgörande för att undvika körningsfel i din produktionskod. Fel relaterade till odefinierad värden kan vara svåra att felsöka och undviks bäst.

Överväg att använda TypeScript för starkt kodad kod som kompileras till JavaScript. I TypeScript kontrolleras din kod vid kompileringstid för att minimera driftstidsbuggar i din produktionskod.

Dela med sig Dela med sig Tweet E-post Relaterade ämnen
  • Programmering
  • JavaScript
  • Kodningstips
Om författaren Klar för avfärd(36 artiklar publicerade)

Mwiza utvecklar programvara efter yrke och skriver mycket om Linux och front-end programmering. Några av hans intressen inkluderar historia, ekonomi, politik och företagsarkitektur.

Mer från Mwiza Kumwenda

Prenumerera på vårt nyhetsbrev

Gå med i vårt nyhetsbrev för tekniska tips, recensioner, gratis e -böcker och exklusiva erbjudanden!

Klicka här för att prenumerera