Datatyper i JavaScript
Denne artikel forklarer datatyper i JavaScript.
YouTube Video
Datatyper i JavaScript
JavaScript har datatyper til at klassificere værdier, som groft sagt kan opdeles i primitiver og objekttyper. Datatyper bestemmer, hvilken type data der gemmes i en variabel, og påvirker, hvordan den kan manipuleres.
Primære typer
Primitiver er simple datatyper, der repræsenterer en enkelt værdi. 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);numberer en type, der bruges til at håndtere numeriske værdier, herunder heltal og decimaltal. Håndtering af værdier, der overstiger visse grænser, resulterer iInfinityellerNaN(Not-a-Number).
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 repræsenteres tal som flydende komma-tal. Som følge heraf kan visse decimaler (især dem, der ikke kan repræsenteres præcist i binær form) muligvis ikke udtrykkes korrekt.
- Når der kræves præcise beregninger, såsom for monetære værdier, er det nødvendigt at undgå sådanne afrundingsfejl. For eksempel kan du bruge
BigInteller justere antallet af decimaler 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);stringer en datatype, der bruges til at håndtere tekst og repræsenterer en sekvens af tegn. Den repræsenteres ved at omslutte tekst med enkelt- (') eller dobbeltanførselstegn ("). Fra ES6 og frem tillader skabelonstrenge nem indlejring af variabler ved brug af backticks (``). For at indsætte en variabel, brug syntaksen${}`.
boolean
1let isAvailable = true;
2let hasError = false;
3
4console.log("Value of isAvailable:", isAvailable);
5console.log("Value of hasError:", hasError);booleanrepræsenterer en logisk værdi og kan kun have to værdier:trueellerfalse. Det bruges som resultat af betingede udtryk eller som en indikator.
null
1let result = null;
2
3console.log("Value of result:", result);nuller en datatype, der eksplicit angiver 'ingen værdi'.nullsættes af udviklere for at angive en tilsigtet tomhed.
undefined
1let score;
2let subject = undefined;
3
4console.log("Value of score:", score); // undefined
5console.log("Value of subject:", subject);undefineder en datatype, der betyder 'ikke defineret'.undefinedtildeles automatisk, når en variabel erklæres, men ikke får tildelt en værdi.
bigint
1let bigIntValue = 9007199254740991n;
2let anotherBigInt = 123456789012345678901234567890n;
3
4console.log("Value of bigIntValue:", bigIntValue);
5console.log("Value of anotherBigInt:", anotherBigInt);biginter en datatypes til håndtering af store heltal.biginttillader nøjagtig repræsentation af store heltal, der ikke kan repræsenteres af datatypennumber.bigint-litteraler repræsenteres ved at tilføjentil slutningen af et tal.biginter en datatype til at håndtere heltal af vilkårlig størrelse uden grænser for rækkevidde. Dog kanbigintognumberikke bruges direkte sammen, så der kræves forsigtighed.
Symbol
1let sym1 = Symbol('id');
2let sym2 = Symbol('id');
3
4console.log("sym1 === sym2:", sym1 === sym2); // false
Symboler en datatyp, der bruges til at skabe unikke identifikatorer. Den oprettes ved hjælp afSymbol()og kan bruges som en egenskab for et objekt. I modsætning til andre primitive typer harSymbolunikke værdier, så selv med det samme indhold behandles det som et andetSymbol.
Objekttyper
Objekttyper er datastrukturer, der kan gemme flere værdier. Et objekt er en samling af nøgle-værdi-par og kan have egenskaber og metoder.
Object
1let person = {
2 name: "John",
3 age: 30,
4 isEmployee: true
5};
6console.log(person.name); // John
Objecter en samling af egenskaber (nøgle-værdi par), der kan gemme forskellige typer data. Objekter repræsenteres med krøllede parenteser{}, og hver egenskab forbindes med:mellem nøgle og værdi.
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
Arrayer en liste, der rummer flere værdier i en ordnet rækkefølge. Arrays repræsenteres med firkantede parenteser[], og værdier adskilles med kommaer,. Hvert element tilgås ved hjælp af en indeks, der starter ved 0.
Function
1function greet(name) {
2 return "Hello, " + name;
3}
4console.log(greet("Alice")); // Hello, Alice
- Funktioner er en type objekt og genanvendelige kodeblokke. Funktioner kan defineres ved hjælp af nøgleordet
function.
Andre objekttyper
- JavaScript har også indbyggede objekttyper som
Date,RegExp,MapogSet. Disse håndterer data i henhold til specifikke anvendelsestilfælde.
Typekonvertering
Implicitte og eksplícitte typekonverteringer udføres ofte i JavaScript.
Implicit typekonvertering
- JavaScript kan automatisk konvertere typer, når der udføres operationer mellem forskellige typer.
1let result = 5 + "5"; // "55" (the number is converted to a string)
2
3console.log(result);- I dette eksempel bliver tallet
5implicit konverteret til en streng, hvilket resulterer i strengen"55".
Eksplícit typekonvertering
- Udviklere kan også udføre typekonverteringer eksplicit.
1let num = "123";
2let convertedNum = Number(num); // Converts "123" to the number 123
3
4console.log(typeof num);
5console.log(typeof convertedNum);- I dette eksempel bruges funktionen
Number()til eksplicit at konvertere strengen"123"til tallet123.
Typekontrol
I JavaScript kan du bruge typeof-operatoren til at kontrollere datatypen på 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 () {});Konklusion
- Primitive typer inkluderer
number,string,boolean,null,undefinedogsymbol. - Objekttyper inkluderer
Object,Array,Functionblandt andre. - Da både automatiske og eksplícitte typekonverteringer forekommer, er det vigtigt at forstå den korrekte brug af datatyper.
Du kan følge med i ovenstående artikel ved hjælp af Visual Studio Code på vores YouTube-kanal. Husk også at tjekke YouTube-kanalen.