Datatyper i JavaScript
Denne artikkelen forklarer datatyper i JavaScript.
YouTube Video
Datatyper i JavaScript
JavaScript har datatyper for å klassifisere verdier, som grovt sett kan deles inn i primitivtyper og objekttyper. Datatyper bestemmer hvilken type data som lagres i en variabel og påvirker hvordan den kan manipuleres.
Primitive typer
Primitivtyper er enkle datatyper som representerer en enkelt verdi. JavaScript har følgende 7 primitivtyper.
number
1let num = 42;
2let pi = 3.14;
3
4console.log("Value of num:", num);
5console.log("Value of pi:", pi);
number
er en type som brukes til å håndtere numeriske verdier, inkludert heltall og flyttall (desimaler). Håndtering av verdier som overstiger visse grenser resulterer iInfinity
ellerNaN
(ikke-et-tall).
1// Decimal calculations
2console.log(0.1 + 0.2 === 0.3); // false
3console.log(0.1 + 0.2); // 0.30000000000000004
4
5// Calculations with large numbers
6console.log(9007199254740991 + 1); // correct value
7console.log(9007199254740991 + 2); // incorrect value
- I JavaScript er tall representert som flyttall. Som et resultat kan visse desimaltall (spesielt de som ikke kan representeres nøyaktig i binær) ikke uttrykkes nøyaktig.
- Når presise beregninger kreves, som for pengebeløp, er det nødvendig å unngå slike avrundingsfeil. For eksempel kan du bruke
BigInt
eller justere antall desimaler medtoFixed()
.
string
1let greeting = "Hello, world!";
2let char = 'A';
3const message = `"${greeting}" in JavaScript`;
4
5console.log("Value of greeting:", greeting);
6console.log("Value of char:", char);
7console.log("Value of message:", message);
string
er en datatype som brukes til å håndtere tekst og representerer en serie med tegn. Den representeres ved å omslutte tekst med enkeltfnutter ('
) eller doble anførselstegn ("). Fra og med ES6 tillater maluttrykk enkel innbygging av variabler ved bruk av tilbakevendte aksenter (``). For å bygge inn en variabel, bruk
${}`-syntaksen.
boolean
1let isAvailable = true;
2let hasError = false;
3
4console.log("Value of isAvailable:", isAvailable);
5console.log("Value of hasError:", hasError);
boolean
representerer en logisk verdi og kan bare ha to verdier:true
ellerfalse
. Den brukes som resultatet av betingede uttrykk eller som en flaggvariabel.
null
1let result = null;
2
3console.log("Value of result:", result);
null
er en datatype som eksplisitt indikerer 'ingen verdi.'.null
settes av utviklere for å indikere en tilsiktet tomhet.
undefined
1let score;
2let subject = undefined;
3
4console.log("Value of score:", score); // undefined
5console.log("Value of subject:", subject);
undefined
er en datatype som betyr 'udefinert.'.undefined
tildeles automatisk når en variabel erklæres, men ikke tildeles en verdi.
bigint
1let bigIntValue = 9007199254740991n;
2let anotherBigInt = 123456789012345678901234567890n;
3
4console.log("Value of bigIntValue:", bigIntValue);
5console.log("Value of anotherBigInt:", anotherBigInt);
bigint
er en datatyp for å håndtere store heltall.bigint
tillater nøyaktig representasjon av store heltall som ikke kan representeres avnumber
-typen.bigint
-litteraler representeres ved å legge tiln
på slutten av et tall.bigint
er en type for håndtering av heltall i vilkårlig størrelse, uten grensebegrensninger. Menbigint
ognumber
kan ikke opereres sammen direkte, så forsiktighet er nødvendig.
Symbol
1let sym1 = Symbol('id');
2let sym2 = Symbol('id');
3
4console.log("sym1 === sym2:", sym1 === sym2); // false
Symbol
er en datatype som brukes til å lage unike identifikatorer. Den opprettes ved hjelp avSymbol()
og kan brukes som en egenskap til et objekt. I motsetning til andre primitive typer harSymbol
unike verdier, så selv med samme innhold behandles det som en annenSymbol
.
Objekttyper
Objekttyper er datastrukturer som kan lagre flere verdier. Et objekt er en samling av nøkkel-verdi-par og kan ha egenskaper og metoder.
Object
1let person = {
2 name: "John",
3 age: 30,
4 isEmployee: true
5};
6console.log(person.name); // John
Object
er en samling av egenskaper (nøkkel-verdi-par) som kan lagre ulike typer data. Objekter representeres av krøllparenteser{}
, og hver egenskap er koblet sammen med:
mellom nøkkelen og verdien.
Array
1let numbers = [10, 20, 30];
2console.log(numbers[0]); // 10
3console.log(numbers[1]); // 20
4console.log(numbers[2]); // 30
5console.log(numbers[3]); // undefined
Array
er en liste som holder flere verdier i en ordnet rekkefølge. Lister representeres av firkantparenteser[]
, og verdier skilles med kommaer,
. Hvert element kan nås ved hjelp av en indeks som starter på 0.
Function
1function greet(name) {
2 return "Hello, " + name;
3}
4console.log(greet("Alice")); // Hello, Alice
- Funksjoner er en type objekt og gjenbrukbare kodeblokker. Funksjoner kan defineres med nøkkelordet
function
.
Andre Objekttyper
- JavaScript har også innebygde objekttyper som
Date
,RegExp
,Map
ogSet
. Disse håndterer data i henhold til spesifikke brukstilfeller.
Typekonvertering
Implisitte og eksplisitte typekonverteringer utføres ofte i JavaScript.
Implisitt Typekonvertering
- JavaScript kan automatisk konvertere typer når den utfører operasjoner mellom forskjellige typer.
1let result = 5 + "5"; // "55" (the number is converted to a string)
2
3console.log(result);
- I dette eksempelet blir tallet
5
implisitt konvertert til en streng, noe som resulterer i strengen"55"
.
Eksplisitt Typekonvertering
- Utviklere kan også utføre typekonverteringer eksplisitt.
1let num = "123";
2let convertedNum = Number(num); // Converts "123" to the number 123
3
4console.log(typeof num);
5console.log(typeof convertedNum);
- I dette eksempelet brukes
Number()
-funksjonen til å eksplisitt konvertere strengen"123"
til tallet123
.
Typekontroll
I JavaScript kan du bruke typeof
-operatoren for å sjekke datatypen til en variabel.
1// Output: The type of 42 is: number
2console.log('The type of 42 is:', typeof 42);
3
4// Output: The type of 42 is: bigint
5console.log('The type of 42n is:', typeof 42n);
6
7// Output: The type of "hello" is: string
8console.log('The type of "hello" is:', typeof "hello");
9
10// Output: The type of true is: boolean
11console.log('The type of true is:', typeof true);
12
13// Output: The type of undefined is: undefined
14console.log('The type of undefined is:', typeof undefined);
15
16// Output: The type of null is: object
17console.log('The type of null is:', typeof null);
18
19// Output: The type of Symbol() is: symbol
20console.log('The type of Symbol() is:', typeof Symbol());
21
22// Output: The type of {} is: object
23console.log('The type of {} is:', typeof {});
24
25// Output: The type of function () {} is: function
26console.log('The type of function () {} is:', typeof function () {});
Konklusjon
- Primitive typer inkluderer
number
,string
,boolean
,null
,undefined
ogsymbol
. - Objekttyper inkluderer
Object
,Array
,Function
blant andre. - Siden både automatiske og eksplisitte typekonverteringer skjer, er det viktig å forstå riktig bruk av datatyper.
Du kan følge med på artikkelen ovenfor ved å bruke Visual Studio Code på vår YouTube-kanal. Vennligst sjekk ut YouTube-kanalen.