Datatyper i JavaScript
Den här artikeln förklarar datatyper i JavaScript.
YouTube Video
Datatyper i JavaScript
JavaScript har datatyper för att klassificera värden, som kan delas in i primitiva typer och objekttyper. Datatyper avgör vilken typ av data som lagras i en variabel och påverkar hur den kan hanteras.
Primitiva typer
Primitiva typer är enkla datatyper som representerar ett enda värde. JavaScript har följande 7 primitiva typer.
number
1let num = 42;
2let pi = 3.14;
3
4console.log("Value of num:", num);
5console.log("Value of pi:", pi);
number
är en typ som används för att hantera numeriska värden, inklusive heltal och flyttal (decimaler). Hantera värden som överstiger vissa gränser resulterar iInfinity
ellerNaN
(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 representeras siffror som flyttal. Som ett resultat kan vissa decimaltal (särskilt de som inte kan representeras exakt i binärt) inte uttryckas korrekt.
- När exakta beräkningar krävs, till exempel för monetära värden, är det nödvändigt att undvika sådana avrundningsfel. Till exempel kan du använda
BigInt
eller justera antalet 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);
string
är en datatyp som används för att hantera text och representerar en sekvens av tecken. Den representeras genom att omsluta texten med enkla citattecken ('
) eller dubbla citattecken ("). Från och med ES6 tillåter mallsträngar enkel inbäddning av variabler med hjälp av bakåtvända citattecken (
). För att bädda in en variabel, använd syntaxen${}
.
boolean
1let isAvailable = true;
2let hasError = false;
3
4console.log("Value of isAvailable:", isAvailable);
5console.log("Value of hasError:", hasError);
boolean
representerar ett logiskt värde och kan bara ha två värden:true
ellerfalse
. Den används som resultat av villkorsuttryck eller som en flagga.
null
1let result = null;
2
3console.log("Value of result:", result);
null
är en datatyp som uttryckligen indikerar 'inget värde.'.null
sätts av utvecklare för att indikera en avsiktlig tomhet.
undefined
1let score;
2let subject = undefined;
3
4console.log("Value of score:", score); // undefined
5console.log("Value of subject:", subject);
undefined
är en datatyp som betyder 'odefinierad.'.undefined
tilldelas automatiskt när en variabel deklareras men inte tilldelas något värde.
bigint
1let bigIntValue = 9007199254740991n;
2let anotherBigInt = 123456789012345678901234567890n;
3
4console.log("Value of bigIntValue:", bigIntValue);
5console.log("Value of anotherBigInt:", anotherBigInt);
bigint
är en datatyp för att hantera stora heltal.bigint
möjliggör en noggrann representation av stora heltal som inte kan representeras av typennumber
.bigint
-bokstavsvärden representeras genom att lägga tilln
i slutet av ett tal.bigint
är en typ för att hantera heltal av godtycklig storlek, utan begränsningar i omfånget. Dock kanbigint
ochnumber
inte användas direkt tillsammans, så försiktighet krävs.
Symbol
1let sym1 = Symbol('id');
2let sym2 = Symbol('id');
3
4console.log("sym1 === sym2:", sym1 === sym2); // false
Symbol
är en datatyp som används för att skapa unika identifierare. Den skapas medSymbol()
och kan användas som en egenskap hos ett objekt. Till skillnad från andra primitiva typer harSymbol
unika värden, så även med samma innehåll behandlas det som en annanSymbol
.
Objekttyper
Objekttyper är datastrukturer som kan lagra flera värden. Ett objekt är en samling av nyckel-värde-par och kan ha egenskaper och metoder.
Object
1let person = {
2 name: "John",
3 age: 30,
4 isEmployee: true
5};
6console.log(person.name); // John
Object
är en samling av egenskaper (nyckel-värdepar) som kan lagra olika typer av data. Objekt representeras av måsvingar{}
, och varje egenskap förbinds av:
mellan nyckeln och värdet.
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
är en lista som innehåller flera värden i en ordnad form. Arrayer representeras av hakparenteser[]
, och värden separeras med kommatecken,
. Varje element nås med hjälp av ett index som börjar på 0.
Function
1function greet(name) {
2 return "Hello, " + name;
3}
4console.log(greet("Alice")); // Hello, Alice
- Funktioner är en typ av objekt och återanvändningsbara kodblock. Funktioner kan definieras med nyckelordet
function
.
Andra objekttyper
- JavaScript har också inbyggda objekttyper som
Date
,RegExp
,Map
ochSet
. Dessa hanterar data enligt specifika användningsområden.
Typkonvertering
Implicit och explicit typkonverteringar utförs ofta i JavaScript.
Implicit typkonvertering
- JavaScript kan automatiskt konvertera typer vid operationer mellan olika typer.
1let result = 5 + "5"; // "55" (the number is converted to a string)
2
3console.log(result);
- I det här exemplet omvandlas talet
5
implicit till en sträng, vilket resulterar i strängen"55"
.
Explicit typkonvertering
- Utvecklare kan också utföra typkonverteringar explicit.
1let num = "123";
2let convertedNum = Number(num); // Converts "123" to the number 123
3
4console.log(typeof num);
5console.log(typeof convertedNum);
- I det här exemplet används funktionen
Number()
för att explicit omvandla strängen"123"
till talet123
.
Typkontroll
I JavaScript kan du använda operatorn typeof
för att kontrollera datatypen för 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 () {});
Slutsats
- Primitiva typer inkluderar
number
,string
,boolean
,null
,undefined
ochsymbol
. - Objekttyper inkluderar
Object
,Array
,Function
, bland andra. - Eftersom både automatiska och explicita typkonverteringar sker är det viktigt att förstå rätt användning av datatyper.
Du kan följa med i artikeln ovan med hjälp av Visual Studio Code på vår YouTube-kanal. Vänligen kolla även in YouTube-kanalen.