Datatyper i JavaScript

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 i Infinity eller NaN (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 med toFixed().

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 eller false. 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 av number-typen. bigint-litteraler representeres ved å legge til n på slutten av et tall.
  • bigint er en type for håndtering av heltall i vilkårlig størrelse, uten grensebegrensninger. Men bigint og number 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 av Symbol() og kan brukes som en egenskap til et objekt. I motsetning til andre primitive typer har Symbol unike verdier, så selv med samme innhold behandles det som en annen Symbol.

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 og Set. 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 tallet 123.

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 og symbol.
  • 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.

YouTube Video