1. Streng
2. Nummer
3. Bigint
4. Boolean
5. Udefineret
6. Nul
7. Symbol
8. Objekt
Objektdatatypen kan indeholde:
1. Et objekt
2. En matrix
3. En date
// Numbers:
let length = 16;
let weight = 7.5;
// Strings:
let color = "Yellow";
let lastName = "Johnson";
// Booleans
let x = true;
let y = false;
// Object:
const person = {firstName:"John", lastName:"Doe"};
// Array object:
const cars = ["Saab", "Volvo", "BMW"];
// Date object:
const date = new Date("2022-03-25");
En JavaScript-variabel kan indeholde enhver type data.
Inden for programmering er datatyper et vigtigt begreb.
For at kunne operere på variable er det vigtigt at vide noget om typen.
Uden datatyper kan en computer ikke sikkert løse dette:
let x = 16 + "Volvo";
Giver det nogen mening at tilføje "Volvo" til seksten? Vil det producere en fejl eller vil det give et resultat?
JavaScript vil behandle eksemplet ovenfor som:
let x = "16" + "Volvo";
Når du tilføjer et tal og en streng, vil JavaScript behandle nummeret som et snor.
let x = 16 + "Volvo";
Prøv det selv →
<!DOCTYPE html>
<html>
<body>
<h2>JavaScript</h2>
<p>When adding a number and a string, JavaScript will treat the number as a string.</p>
<p id="demo"></p>
<script>
let x = 16 + "Volvo";
document.getElementById("demo").innerHTML = x;
</script>
</body>
</html>
let x = "Volvo" + 16;
Prøv det selv →
<!DOCTYPE html>
<html>
<body>
<h2>JavaScript</h2>
<p>When adding a string and a number, JavaScript will treat the number as a string.</p>
<p id="demo"></p>
<script>
let x = "Volvo" + 16;
document.getElementById("demo").innerHTML = x;
</script>
</body>
</html>
JavaScript evaluerer udtryk fra venstre mod højre. Forskellige sekvenser kan give forskellige resultater:
let x = 16 + 4 + "Volvo";
Resultat :
20Volvo
Prøv det selv →
<!DOCTYPE html>
<html>
<body>
<h2>JavaScript</h2>
<p>JavaScript evaluates expressions from left to right. Different sequences can produce different results:</p>
<p id="demo"></p>
<script>
let x = 16 + 4 + "Volvo";
document.getElementById("demo").innerHTML = x;
</script>
</body>
</html>
let x = "Volvo" + 16 + 4;
Resultat :
Volvo164
Prøv det selv →
<!DOCTYPE html>
<html>
<body>
<h2>JavaScript</h2>
<p>JavaScript evaluates expressions from left to right. Different sequences can produce different results:</p>
<p id="demo"></p>
<script>
let x = "Volvo" + 16 + 4;
document.getElementById("demo").innerHTML = x;
</script>
</body>
</html>
I det første eksempel behandler JavaScript 16 og 4 som tal, indtil det når "Volvo".
I det andet eksempel, da den første operand er en streng, er alle operander behandlet som strenge.
JavaScript har dynamiske typer. Det betyder, at den samme variabel kan bruges at holde forskellige datatyper:
let x; // Now x is undefined
x = 5; // Now x is a Number
x = "John"; // Now x is a String
En streng (eller en tekststreng) er en række tegn som "John Doe".
Stryge er skrevet med anførselstegn. Du kan bruge enkelte eller dobbelte anførselstegn:
// Using double quotes:
let carName1 = "Volvo XC60";
// Using single quotes:
let carName2 = 'Volvo XC60';
Du kan bruge anførselstegn inde i en streng, så længe de ikke matcher anførselstegnene omkring strengen:
// Single quote inside double quotes:
let answer1 = "It's alright";
// Single quotes inside double quotes:
let answer2 = "He is called 'Johnny'";
// Double quotes inside single quotes:
let answer3 = 'He is called "Johnny"';
Du vil lære mere om strenge senere i denne øvelse.
Alle JavaScript-numre gemmes som decimaltal (flydende komma).
Tal kan skrives med eller uden decimaler:
// With decimals:
let x1 = 34.00;
// Without decimals:
let x2 = 34;
Ekstra store eller ekstra små tal kan skrives med videnskabelig (eksponentiel) notation:
let y = 123e5; // 12300000
let z = 123e-5; // 0.00123
De fleste programmeringssprog har mange taltyper:
Heltal (heltal):
byte (8-bit), kort (16-bit), int (32-bit), lang (64-bit)
Reelle tal (flydende komma):
flydende (32-bit), dobbelt (64-bit).
Javascript-numre er altid én type:
dobbelt (64-bit flydende komma).
Du vil lære mere om numre senere i dette selvstudie.
Alle JavaScript-numre er gemt i et 64-bit flydende komma-format.
JavaScript BigInt er en ny datatype (ES2020), der kan bruges til at gemme heltalsværdier, der er for store til at blive repræsenteret med et normalt JavaScript-nummer.
let x = BigInt("123456789012345678901234567890");
Du vil lære mere om BigInt senere i denne øvelse.
Booleans kan kun have to værdier: true
eller false
.
let x = 5;
let y = 5;
let z = 6;
(x == y)
// Returns true
(x == z) // Returns
false
Prøv det selv →
<!DOCTYPE html>
<html>
<body>
<h2>JavaScript Booleans</h2>
<p>Booleans can have two values: true or false:</p>
<p id="demo"></p>
<script>
let x = 5;
let y = 5;
let z = 6;
document.getElementById("demo").innerHTML =
(x == y) + "<br>" + (x == z);
</script>
</body>
</html>
Booleans bruges ofte i betinget test.
Du vil lære mere om booleans senere i denne øvelse.
JavaScript-arrays er skrevet med firkantede parenteser.
Array-elementer er adskilt af kommaer.
Følgende kode erklærer (opretter) et array kaldet biler
, der indeholder tre varer (bilnavne):
const cars = ["Saab", "Volvo", "BMW"];
Prøv det selv →
<!DOCTYPE html>
<html>
<body>
<h2>JavaScript Arrays</h2>
<p>Array indexes are zero-based, which means the first item is [0].</p>
<p id="demo"></p>
<script>
const cars = ["Saab","Volvo","BMW"];
document.getElementById("demo").innerHTML = cars[0];
</script>
</body>
</html>
Array-indekser er nul-baserede, hvilket betyder, at det første element er [0], det andet er [1] og så videre.
Du vil lære mere om arrays senere i denne øvelse.
JavaScript-objekter er skrevet med krøllede klammeparenteser {}
.
Objekt egenskaber skrives som navn:værdi-par, adskilt af kommaer.
const person = {firstName:"John", lastName:"Doe", age:50, eyeColor:"blue"};
Prøv det selv →
<!DOCTYPE html>
<html>
<body>
<h2>JavaScript Objects</h2>
<p id="demo"></p>
<script>
const person = {
firstName : "John",
lastName : "Doe",
age : 50,
eyeColor : "blue"
};
document.getElementById("demo").innerHTML =
person.firstName + " is " + person.age + " years old.";
</script>
</body>
</html>
Objektet (personen) i eksemplet ovenfor har 4 egenskaber: fornavn, efternavn, alder og øjenfarve.
Du vil lære mere om objekter senere i denne øvelse.
Du kan bruge JavaScript-operatoren typeof
til at finde typen af en JavaScript-variabel.
Operatoren typeof
returnerer typen af en variabel eller et udtryk:
typeof "" // Returns
"string"
typeof "John" // Returns
"string"
typeof "John Doe" // Returns
"string"
Prøv det selv →
<!DOCTYPE html>
<html>
<body>
<h1>JavaScript Operators</h1>
<h2>The typeof Operator</h2>
<p>The typeof operator returns the type of a variable or an expression.</p>
<p id="demo"></p>
<script>
document.getElementById("demo").innerHTML =
typeof "" + "<br>" +
typeof "John" + "<br>" +
typeof "John Doe";
</script>
</body>
</html>
typeof 0 // Returns
"number"
typeof 314 // Returns
"number"
typeof 3.14 // Returns
"number"
typeof (3) // Returns
"number"
typeof (3 + 4) // Returns
"number"
Prøv det selv →
<!DOCTYPE html>
<html>
<body>
<h1>JavaScript Operators</h1>
<h2>The typeof Operator</h2>
<p>The typeof operator returns the type of a variable or an expression.</p>
<p id="demo"></p>
<script>
document.getElementById("demo").innerHTML =
typeof 0 + "<br>" +
typeof 314 + "<br>" +
typeof 3.14 + "<br>" +
typeof (3) + "<br>" +
typeof (3 + 4);
</script>
</body>
</html>
Du vil lære mere om typeaf senere i denne øvelse.
I JavaScript har en variabel uden en værdi værdien undefined
. Typen er også udefineret
.
let car; // Value is undefined,
type is undefined
Prøv det selv →
<!DOCTYPE html>
<html>
<body>
<h1>JavaScript Operators</h1>
<h2>The typeof Operator</h2>
<p>The value (and the data type) of a variable with no value is <b>undefined</b>.</p>
<p id="demo"></p>
<script>
let car;
document.getElementById("demo").innerHTML =
car + "<br>" + typeof car;
</script>
</body>
</html>
Enhver variabel kan tømmes ved at sætte værdien til undefined
. Typen vil også være udefineret
.
car = undefined; // Value is undefined,
type is undefined
Prøv det selv →
<!DOCTYPE html>
<html>
<body>
<h1>JavaScript Operators</h1>
<h2>The typeof Operator</h2>
<p>Variables can be emptied if you set the value to <b>undefined</b>.</p>
<p id="demo"></p>
<script>
let car = "Volvo";
car = undefined;
document.getElementById("demo").innerHTML = car + "<br>" + typeof car;
</script>
</body>
</html>
En tom værdi har intet at gøre med undefined
.
En tom streng har både en juridisk værdi og en type.
let car = ""; // The value is "", the typeof is "string"
Prøv det selv →
<!DOCTYPE html>
<html>
<body>
<h2>JavaScript</h2>
<p>An empty string has both a legal value and a type:</p>
<p id="demo"></p>
<script>
let car = "";
document.getElementById("demo").innerHTML =
"The value is: " +
car + "<br>" +
"The type is: " + typeof car;
</script>
</body>
</html>