ECMAScript 2015 var den anden store revision af JavaScript.
ECMAScript 2015 er også kendt som ES6 og ECMAScript 6.
Dette kapitel beskriver de vigtigste funktioner i ES6.
Søgeordet lad
Nøgleordet const
Pile funktioner
Den ... Operatør
For/af
Kortobjekter
Indstil objekter
Klasser
Løfter
Symbol
Standardparametre
Funktion hvileparameter
String.includes()
String.startsWith()
String.endsWith()
Array.from()
Matrixnøgler()
Array find()
Array findIndex()
Nye matematiske metoder
Nye nummeregenskaber
Nye talmetoder
Nye globale metoder
Objektindtastninger
JavaScript moduler
Safari 10 og Edge 14 var de første browsere, der fuldt ud understøttede ES6:
Chrome 58 | Edge 14 | Firefox 54 | Safari 10 | Opera 55 |
Jan 2017 | Aug 2016 | Mar 2017 | Jul 2016 | Aug 2018 |
let
nøgleordet giver dig mulighed for at erklære en variabel med blokere omfang.
var x = 10;
// Here x is 10
{
let x = 2;
// Here x is 2
}
// Here x is 10
Prøv det selv →
<!DOCTYPE html>
<html>
<body>
<h2>Redeclaring a Variable Using let</h2>
<p id="demo"></p>
<script>
let x = 10;
// Here x is 10
{
let x = 2;
// Here x is 2
}
// Here x is 10
document.getElementById("demo").innerHTML = x;
</script>
</body>
</html>
Læs mere om let
i kapitlet: JavaScript Let.
Søgeordet const
giver dig mulighed for at erklære en konstant (a JavaScript-variabel med en konstant værdi).
Konstanter ligner ladvariabler, bortset fra at værdien ikke kan ændres.
var x = 10;
// Here x is 10
{
const x = 2;
// Here x is 2
}
// Here x is 10
Prøv det selv →
<!DOCTYPE html>
<html>
<body>
<h2>Declaring a Variable Using const</h2>
<p id="demo"></p>
<script>
var x = 10;
// Here x is 10
{
const x = 2;
// Here x is 2
}
// Here x is 10
document.getElementById("demo").innerHTML = x;
</script>
</body>
</html>
Læs mere om const
i kapitlet: JavaScript Const.
Pilefunktioner tillader en kort syntaks til at skrive funktionsudtryk.
Du behøver ikke funktion
søgeordet, retur
søgeordet og krøllede parenteser.
// ES5
var x = function(x, y) {
return x * y;
}
// ES6
const x = (x, y) => x * y;
Prøv det selv →
<!DOCTYPE html>
<html>
<body>
<h2>JavaScript Arrow Functions</h2>
<p>With arrow functions, you don't have to type the function keyword, the return keyword, and the curly brackets.</p>
<p>Arrow functions are not supported in IE11 or earlier.</p>
<p id="demo"></p>
<script>
const x = (x, y) => x * y;
document.getElementById("demo").innerHTML = x(5, 5);
</script>
</body>
</html>
Pilefunktioner har ikke deres eget dette
. De er ikke velegnede til at definere objektmetoder.
Pilefunktioner er ikke hejst. De skal defineres før de bruges.
Brug af const
er sikrere end at bruge var
, fordi et funktionsudtryk er altid en konstant værdi.
Du kan kun udelade nøgleordet retur
og de krøllede parenteser, hvis funktionen er en enkelt sætning. På grund af dette kan det være en god vane altid at beholde dem:
const x = (x, y) => { return x * y };
Prøv det selv →
<!DOCTYPE html>
<html>
<body>
<h2>JavaScript Arrow Functions</h2>
<p>Arrow functions are not supported in IE11 or earlier.</p>
<p id="demo"></p>
<script>
const x = (x, y) => { return x * y };
document.getElementById("demo").innerHTML = x(5, 5);
</script>
</body>
</html>
Lær mere om pilefunktioner i kapitlet: JavaScript pilefunktion.
Operatoren ... udvider en iterabel (som et array) til flere elementer:
const q1 = ["Jan", "Feb", "Mar"];
const q2 = ["Apr", "May", "Jun"];
const q3 = ["Jul", "Aug", "Sep"];
const q4 = ["Oct", "Nov", "May"];
const year = [...q1, ...q2, ...q3, ...q4];
Prøv det selv →
<!DOCTYPE html>
<html>
<body>
<h1>JavaScript Operators</h1>
<h2>The ... Operator</h2>
<p>The "spread" operator spreads elements of iterable objects:</p>
<p id="demo"></p>
<script>
const q1 = ["Jan", "Feb", "Mar"];
const q2 = ["Apr", "May", "Jun"];
const q3 = ["Jul", "Aug", "Sep"];
const q4 = ["Oct", "Nov", "May"];
const year = [...q1, ...q2, ...q3, ...q4];
document.getElementById("demo").innerHTML = year;
</script>
</body>
</html>
Operatoren ... kan bruges til at udvide en iterabel til flere argumenter for funktionskald:
const numbers = [23,55,21,87,56];
let maxValue = Math.max(...numbers);
Prøv det selv →
<!DOCTYPE html>
<html>
<body>
<h1>JavaScript Operators</h1>
<h2>The ... Operator</h2>
<p>The "Spread" operator can be used to expand an iterable into more arguments for function calls:</p>
<p id="demo"></p>
<script>
const numbers = [23,55,21,87,56];
let maxValue = Math.max(...numbers);
document.getElementById("demo").innerHTML = maxValue;
</script>
</body>
</html>
JavaScript for/of
-sætningsløkkerne gennem værdierne af gentagelige objekter.
for/of
giver dig mulighed for at gå over datastrukturer der er iterable såsom Arrays, Strings, Maps, NodeLists og mere.
for/of
-løkken har følgende syntaks:
for (variable of iterable) {
// code block to be executed
}
variabel - For hver iteration er værdien af den næste egenskab tildelt variablen. Variabel kan erklæres med const
, let
eller var
.
iterbar - Et objekt, der har iterable egenskaber.
const cars = ["BMW", "Volvo", "Mini"];
let text = "";
for (let x of cars) {
text += x + " ";
}
Prøv det selv →
<!DOCTYPE html>
<html>
<body>
<h2>JavaScript For Of Loop</h2>
<p>The for of statement loops through the values of any iterable object:</p>
<p id="demo"></p>
<script>
const cars = ["BMW", "Volvo", "Mini"];
let text = "";
for (let x of cars) {
text += x + "<br>";
}
document.getElementById("demo").innerHTML = text;
</script>
</body>
</html>
let language = "JavaScript";
let text = "";
for (let x of language) {
text += x + " ";
}
Prøv det selv →
<!DOCTYPE html>
<html>
<body>
<h2>JavaScript For Of Loop</h2>
<p>The for of statement loops through the values of an iterable object.</p>
<p id="demo"></p>
<script>
let language = "JavaScript";
let text = "";
for (let x of language) {
text += x + "<br>";
}
document.getElementById("demo").innerHTML = text;
</script>
</body>
</html>
Lær mere i kapitlet: JavaScript Loop For/In/Of.
At kunne bruge et objekt som en nøgle er en vigtig kortfunktion.
const fruits = new Map([
["apples", 500],
["bananas", 300],
["oranges", 200]
]);
Prøv det selv →
<!DOCTYPE html>
<html>
<body>
<h2>JavaScript Map Objects</h2>
<p>Creating a Map from an Array:</p>
<p id="demo"></p>
<script>
// Create a Map
const fruits = new Map([
["apples", 500],
["bananas", 300],
["oranges", 200]
]);
document.getElementById("demo").innerHTML = fruits.get("apples");
</script>
</body>
</html>
Lær mere om kortobjekter og forskellen mellem et kort og et array i kapitlet: JavaScript-kort.
// Create a Set
const letters = new Set();
// Add some values to the Set
letters.add("a");
letters.add("b");
letters.add("c");
Prøv det selv →
<!DOCTYPE html>
<html>
<body>
<h2>JavaScript Sets</h2>
<p>Add values to a Set:</p>
<p id="demo"></p>
<script>
// Create a Set
const letters = new Set();
// Add Values to the Set
letters.add("a");
letters.add("b");
letters.add("c");
// Display set.size
document.getElementById("demo").innerHTML = letters.size;
</script>
</body>
</html>
Lær mere om sæt-objekter i kapitlet: JavaScript-sæt.
JavaScript-klasser er skabeloner til JavaScript-objekter.
Brug søgeordet klasse
til at oprette en klasse.
Tilføj altid en metode med navnet constructor()
:
class ClassName {
constructor() { ... }
}
class Car {
constructor(name, year) {
this.name = name;
this.year = year;
}
}
Eksemplet ovenfor opretter en klasse med navnet "Bil".
Klassen har to indledende egenskaber: "navn" og "år".
En JavaScript-klasse er ikke et objekt.
Det er en skabelon til JavaScript-objekter.
Når du har en klasse, kan du bruge klassen til at oprette objekter:
const myCar1 = new Car("Ford", 2014);
const myCar2 = new Car("Audi", 2019);
Prøv det selv →
<!DOCTYPE html>
<html>
<body>
<h1>JavaScript Classes</h1>
<p>Creating two car objects from a car class:</p>
<p id="demo"></p>
<script>
class Car {
constructor(name, year) {
this.name = name;
this.year = year;
}
}
const myCar1 = new Car("Ford", 2014);
const myCar2 = new Car("Audi", 2019);
document.getElementById("demo").innerHTML =
myCar1.name + " " + myCar2.name;
</script>
</body>
</html>
Lær mere om klasser i kapitlet: JavaScript-klasser.
Et løfte er et JavaScript-objekt, der forbinder "Producing Code" og "Consuming Code".
"Producer kode" kan tage noget tid, og "forbrugende kode" skal vente på resultatet.
const myPromise = new Promise(function(myResolve, myReject) {
// "Producing Code" (May take some time)
myResolve(); // when successful
myReject(); // when error
});
// "Consuming Code" (Must wait for a fulfilled Promise).
myPromise.then(
function(value) { /* code if successful */ },
function(error) { /* code if some error */ }
);
const myPromise = new Promise(function(myResolve, myReject) {
setTimeout(function() { myResolve("I love You !!"); }, 3000);
});
myPromise.then(function(value) {
document.getElementById("demo").innerHTML = value;
});
Prøv det selv →
<!DOCTYPE html>
<html>
<body>
<h2>JavaScript Promise</h2>
<p>Wait 3 seconds (3000 milliseconds) for this page to change.</p>
<h1 id="demo"></h1>
<script>
const myPromise = new Promise(function(myResolve, myReject) {
setTimeout(function(){ myResolve("I love You !!"); }, 3000);
});
myPromise.then(function(value) {
document.getElementById("demo").innerHTML = value;
});
</script>
</body>
</html>
Lær mere om løfter i kapitlet: JavaScript løfter.
Et JavaScript-symbol er en primitiv datatype ligesom tal, streng eller boolesk.
Det repræsenterer en unik "skjult" identifikator, som ingen anden kode ved et uheld kan få adgang til.
For eksempel, hvis forskellige kodere ønsker at tilføje en person.id-egenskab til et personobjekt, der tilhører en tredjepartskode, de kunne blande hinandens værdier.
Brug af Symbol() til at oprette en unik identifikator, løser dette problem:
const person = {
firstName: "John",
lastName: "Doe",
age: 50,
eyeColor: "blue"
};
let id = Symbol('id');
person[id] = 140353;
// Now person[id] = 140353
// but person.id is still undefined
Prøv det selv →
<!DOCTYPE html>
<html>
<body>
<h2>Using JavaScript Symbol()</h2>
<p id="demo"></p>
<script>
const person = {
firstName: "John",
lastName: "Doe",
age: 50,
eyeColor: "blue"
};
let id = Symbol('id');
person[id] = 140353;
document.getElementById("demo").innerHTML = person[id] + " " + person.id;
</script>
</body>
</html>
Symboler er altid unikke.
Hvis du opretter to symboler med samme beskrivelse, vil de have forskellige værdier:
Symbol("id") == Symbol("id"); // false
ES6 tillader funktionsparametre at have standardværdier.
function myFunction(x, y = 10) { // y is 10 if not passed or undefined return x + y;
}
myFunction(5); // will return 15
Prøv det selv →
<!DOCTYPE html>
<html>
<body>
<h1>JavaScript Functions</h1>
<h2>Default Parameter Values</h2>
<p>If y is not passed or undefined, then y = 10:</p>
<p id="demo"></p>
<script>
function myFunction(x, y = 10) {
return x + y;
}
document.getElementById("demo").innerHTML = myFunction(5);
</script>
</body>
</html>
Parameteren rest (...) tillader en funktion at behandle et ubestemt antal argumenter som en matrix:
function sum(...args) {
let sum = 0;
for (let arg of args) sum += arg;
return sum;
}
let x = sum(4, 9, 16, 25, 29, 100, 66, 77);
Prøv det selv →
<!DOCTYPE html>
<html>
<body>
<h1>JavaScript Functions</h1>
<h2>The Rest Parameter</h2>
<p>The rest parameter (...) allows a function to treat an indefinite number of arguments as an array:</p>
<p id="demo"></p>
<script>
function sum(...args) {
let sum = 0;
for (let arg of args) sum += arg;
return sum;
}
let x = sum(4, 9, 16, 25, 29, 100, 66, 77);
document.getElementById("demo").innerHTML = x;
</script>
</body>
</html>
Metoden includes()
returnerer true
, hvis en streng indeholder en specificeret værdi, ellers false
:
let text = "Hello world, welcome to the universe.";
text.includes("world") // Returns true
Prøv det selv →
<!DOCTYPE html>
<html>
<body>
<h1>JavaScript Strings</h1>
<h2>The includes() Method</h2>
<p>Check if a string includes "world":</p>
<p id="demo"></p>
<p>The includes() method is not supported in Internet Explorer.</p>
<script>
let text = "Hello world, welcome to the universe.";
document.getElementById("demo").innerHTML = text.includes("world");
</script>
</body>
</html>
Metoden startsWith()
returnerer true
hvis en streng begynder med en specificeret værdi, ellers false
:
let text = "Hello world, welcome to the universe.";
text.startsWith("Hello") // Returns true
Prøv det selv →
<!DOCTYPE html>
<html>
<body>
<h1>JavaScript Strings</h1>
<h2>The startsWith() Method</h2>
<p>Check if a string starts with "Hello":</p>
<p id="demo"></p>
<p>The startsWith() method is not supported in Internet Explorer.</p>
<script>
let text = "Hello world, welcome to the universe.";
document.getElementById("demo").innerHTML = text.startsWith("Hello");
</script>
</body>
</html>
Metoden endsWith()
returnerer true
hvis en streng slutter med en specificeret værdi, ellers false
:
var text = "John Doe";
text.endsWith("Doe") // Returns true
Prøv det selv →
<!DOCTYPE html>
<html>
<body>
<h2>JavaScript Strings</h2>
<p>Check if a string ends with "Doe":</p>
<p id="demo"></p>
<p>The endsWith() method is not supported in Internet Explorer.</p>
<script>
let text = "John Doe";
document.getElementById("demo").innerHTML = text.endsWith("Doe");
</script>
</body>
</html>
Metoden Array.from()
returnerer et Array-objekt fra ethvert objekt med en længde egenskab eller ethvert iterabelt objekt.
Opret et array fra en streng:
Array.from("ABCDEFG") // Returns [A,B,C,D,E,F,G]
Prøv det selv →
<!DOCTYPE html>
<html>
<body>
<h1>JavaScript Arrays</h1>
<h2>The from() Method</h2>
<p>Return an array object from any object with a length property or any iterable object.</p>
<p id="demo"></p>
<script>
const myArr = Array.from("ABCDEFG");
document.getElementById("demo").innerHTML = myArr;
</script>
<p>The Array.from() method is not supported in Internet Explorer.</p>
</body>
</html>
Metoden keys()
returnerer et Array Iterator-objekt med nøglerne til et array.
Opret et Array Iterator-objekt, der indeholder nøglerne til arrayet:
const fruits = ["Banana", "Orange", "Apple", "Mango"];
const keys = fruits.keys();
let text = "";
for (let x of keys) {
text += x + "<br>";
}
Prøv det selv →
<!DOCTYPE html>
<html>
<body>
<h1>JavaScript Arrays</h1>
<h2>The keys() Method</h2>
<p>Return an Array Iterator object with the keys of the array:</p>
<p id="demo"></p>
<script>
const fruits = ["Banana", "Orange", "Apple", "Mango"];
const keys = fruits.keys();
let text = "";
for (let x of keys) {
text += x + "<br>";
}
document.getElementById("demo").innerHTML = text;
</script>
<p>Array.keys() is not supported in Internet Explorer.</p>
</body>
</html>
Metoden find()
returnerer værdien af det første array-element, der passerer en test funktion.
Dette eksempel finder (returnerer værdien af ) det første element, der er større end 18:
const numbers = [4, 9, 16, 25, 29];
let first =
numbers.find(myFunction);
function myFunction(value, index, array) {
return
value > 18;
}
Prøv det selv →
<!DOCTYPE html>
<html>
<body>
<h1>JavaScript Arrays</h1>
<h2>The find() Method</h2>
<p id="demo"></p>
<script>
const numbers = [4, 9, 16, 25, 29];
let first = numbers.find(myFunction);
document.getElementById("demo").innerHTML = "First number over 18 is " + first;
function myFunction(value, index, array) {
return value > 18;
}
</script>
</body>
</html>
Bemærk at funktionen tager 3 argumenter:
Varens værdi
Vareindekset
Selve arrayet
Metoden findIndex()
returnerer indekset for det første matrixelement, der består en testfunktion.
Dette eksempel finder indekset for det første element, der er større end 18:
const numbers = [4, 9, 16, 25, 29];
let first =
numbers.findIndex(myFunction);
function myFunction(value, index, array) {
return
value > 18;
}
Prøv det selv →
<!DOCTYPE html>
<html>
<body>
<h1>JavaScript Arrays</h1>
<h2>The findIndex() Method</h2>
<p id="demo"></p>
<script>
const numbers = [4, 9, 16, 25, 29];
document.getElementById("demo").innerHTML = "First number over 18 has index " + numbers.findIndex(myFunction);
function myFunction(value, index, array) {
return value > 18;
}
</script>
</body>
</html>
Bemærk at funktionen tager 3 argumenter:
Varens værdi
Vareindekset
Selve arrayet
ES6 føjede følgende metoder til Math-objektet:
Math.trunc()
Math.sign()
Math.cbrt()
Math.log2()
Math.log10()
Math.trunc(x)
returnerer heltalsdelen af x:
Math.trunc(4.9); // returns 4
Math.trunc(4.7); // returns 4
Math.trunc(4.4); // returns 4
Math.trunc(4.2); // returns 4
Math.trunc(-4.2); // returns -4
Prøv det selv →
<!DOCTYPE html>
<html>
<body>
<h2>JavaScript Math.trunc()</h2>
<p>Math.trunc(x) returns the integer part of x:</p>
<p id="demo"></p>
<script>
document.getElementById("demo").innerHTML = Math.trunc(4.7);
</script>
</body>
</html>
Math.sign(x)
returnerer, hvis x er negativ, null eller positiv:
Math.sign(-4); // returns -1
Math.sign(0); // returns 0
Math.sign(4); // returns 1
Prøv det selv →
<!DOCTYPE html>
<html>
<body>
<h2>JavaScript Math.sign()</h2>
<p>Math.sign(x) returns if x is negative, null or positive:</p>
<p id="demo"></p>
<script>
document.getElementById("demo").innerHTML = Math.sign(4);
</script>
</body>
</html>
Math.cbrt(x)
returnerer terningeroden af x:
Math.cbrt(8); // returns 2
Math.cbrt(64); // returns 4
Math.cbrt(125); // returns 5
Prøv det selv →
<!DOCTYPE html>
<html>
<body>
<h2>JavaScript Math.cbrt()</h2>
<p>Math.cbrt(x) returns the cube root of x:</p>
<p id="demo"></p>
<script>
document.getElementById("demo").innerHTML = Math.cbrt(8);
</script>
</body>
</html>
Math.log2(x)
returnerer basis 2-logaritmen af x:
Math.log2(2); // returns 1
Prøv det selv →
<!DOCTYPE html>
<html>
<body>
<h2>JavaScript Math.log2()</h2>
<p>Math.log2() returns the base 2 logarithm of a number.</p>
<p>How many times must we multiply 2 to get 8?</p>
<p id="demo"></p>
<script>
document.getElementById("demo").innerHTML = Math.log2(8);
</script>
</body>
</html>
Math.log10(x)
returnerer basis 10-logaritmen af x:
Math.log10(10); // returns 1
Prøv det selv →
<!DOCTYPE html>
<html>
<body>
<h2>JavaScript Math.log10()</h2>
<p>Math.log10() returns the base 10 logarithm of a number.</p>
<p>How many times must we multiply 10 to get 1000?</p>
<p id="demo"></p>
<script>
document.getElementById("demo").innerHTML = Math.log10(1000);
</script>
</body>
</html>
ES6 føjede følgende egenskaber til Number-objektet:
EPSILON
MIN_SAFE_INTEGER
MAX_SAFE_INTEGER
let x = Number.EPSILON;
Prøv det selv →
<!DOCTYPE html>
<html>
<body>
<h2>Number Object Properties</h2>
<p>EPSILON</p>
<p id="demo"></p>
<script>
let x = Number.EPSILON;
document.getElementById("demo").innerHTML = x;
</script>
</body>
</html>
let x = Number.MIN_SAFE_INTEGER;
Prøv det selv →
<!DOCTYPE html>
<html>
<body>
<h2>Number Object Properties</h2>
<p>MIN_SAFE_INTEGER</p>
<p id="demo"></p>
<script>
let x = Number.MIN_SAFE_INTEGER;
document.getElementById("demo").innerHTML = x;
</script>
</body>
</html>
let x = Number.MAX_SAFE_INTEGER;
Prøv det selv →
<!DOCTYPE html>
<html>
<body>
<h2>Number Object Properties</h2>
<p>MAX_SAFE_INTEGER</p>
<p id="demo"></p>
<script>
let x = Number.MAX_SAFE_INTEGER;
document.getElementById("demo").innerHTML = x;
</script>
</body>
</html>
ES6 tilføjede 2 nye metoder til Number-objektet:
Number.isInteger()
Number.isSafeInteger()
Metoden Number.isInteger()
returnerer true
, hvis argumentet er et heltal.
Number.isInteger(10); // returns true
Number.isInteger(10.5); // returns false
Prøv det selv →
<!DOCTYPE html>
<html>
<body>
<h1>JavaScript Numbers</h1>
<h2>The isInteger() Method</h2>
<p>The isInteger() method returns true if the argument is an integer.</p>
<p>Otherwise it returns false.</p>
<p id="demo"></p>
<script>
document.getElementById("demo").innerHTML =
Number.isInteger(10) + "<br>" + Number.isInteger(10.5);
</script>
</body>
</html>
Et sikkert heltal er et heltal, der nøjagtigt kan repræsenteres som et dobbelt præcisionstal.
Metoden Number.isSafeInteger()
returnerer true
, hvis argumentet er et sikkert heltal.
Number.isSafeInteger(10); // returns true
Number.isSafeInteger(12345678901234567890); // returns false
Prøv det selv →
<!DOCTYPE html>
<html>
<body>
<h1>JavaScript Numbers</h1>
<h2>The isSafeInteger() Method</h2>
<p>The isSafeInteger() method returns true if the argument is a safe integer.</p>
<p>Otherwise it returns false.</p>
<p id="demo"></p>
<script>
document.getElementById("demo").innerHTML =
Number.isSafeInteger(10) + "<br>" + Number.isSafeInteger(12345678901234567890);
</script>
</body>
</html>
Sikre heltal er alle heltal fra -(253 - 1) til +(253 - 1).
Dette er sikkert: 9007199254740991. Dette er ikke sikkert: 9007199254740992.
ES6 tilføjede 2 nye globale talmetoder:
isFinite()
isNaN()
Den globale isFinite()
metode returnerer false
, hvis argumentet er Infinity
eller NaN
.
Ellers returnerer den true
:
isFinite(10/0); // returns false
isFinite(10/1); // returns true
Prøv det selv →
<!DOCTYPE html>
<html>
<body>
<h1>JavaScript Numbers</h1>
<h2>The isFinite() Method</h2>
<p>The isFinite() method returns false if the argument is Infinity or NaN.</p>
<p>Otherwise it returns true.</p>
<p id="demo"></p>
<script>
document.getElementById("demo").innerHTML =
isFinite(10 / 0) + "<br>" + isFinite(10 / 1);
</script>
</body>
</html>
Den globale isNaN()
metode returnerer true
, hvis argumentet er NaN
. Ellers returnerer den false
:
isNaN("Hello"); // returns true
Prøv det selv →
<!DOCTYPE html>
<html>
<body>
<h1>JavaScript Numbers</h1>
<h2>The isNaN() Method</h2>
<p>The isNan() method returns true if the argument is NaN. Otherwise it returns false.</p>
<p id="demo"></p>
<script>
document.getElementById("demo").innerHTML =
isNaN("Hello") + "<br>" + isNaN("10");
</script>
</body>
</html>
Opret en Array Iterator, og gentag derefter nøgle/værdi-parrene:
const fruits = ["Banana", "Orange", "Apple", "Mango"];
const f = fruits.entries();
for (let x of f) {
document.getElementById("demo").innerHTML += x;
}
Prøv det selv →
<!DOCTYPE html>
<html>
<body>
<h1>JavaScript Arrays</h1>
<h2>The entries() method</h2>
<p>entries() returns an Array Iterator object with key/value pairs:</p>
<p id="demo"></p>
<script>
const fruits = ["Banana", "Orange", "Apple", "Mango"];
const f = fruits.entries();
for (let x of f) {
document.getElementById("demo").innerHTML += x + "<br>";
}
</script>
<p>The entries() method is not supported in Internet Explorer 11 (or earlier).</p>
</body>
</html>
Metoden entries()
returnerer et Array Iterator-objekt med nøgle/værdi-par:
[0, "Banana"]
[1, "Orange"]
[2, "Æble"]
[3, "Mango"]
Metoden entries()
ændrer ikke det oprindelige array.
Moduler importeres på to forskellige måder:
Importer navngivne eksporter fra filen person.js:
import { name, age } from "./person.js";
Prøv det selv →
<!DOCTYPE html>
<html>
<body>
<h1>JavaScript Modules</h1>
<p id="demo"></p>
<script type="module">
import { name, age } from "./person.js";
let text = "My name is " + name + ", I am " + age + ".";
document.getElementById("demo").innerHTML = text;
</script>
</body>
</html>
Importer en standardeksport fra filen message.js:
import message from "./message.js";
Prøv det selv →
<!DOCTYPE html>
<html>
<body>
<h1>JavaScript Modules</h1>
<p id="demo"></p>
<script type="module">
import message from "./message.js";
document.getElementById("demo").innerHTML = message();
</script>
</body>
</html>
Lær mere om moduler i: JavaScript-moduler.