ECMAScript 2015 byla druhá hlavní revize JavaScriptu.
ECMAScript 2015 je také známý jako ES6 a ECMAScript 6.
Tato kapitola popisuje nejdůležitější funkce ES6.
Klíčové slovo let
Klíčové slovo const
Funkce šipek
Operátor
Pro/z
Mapové objekty
Nastavit objekty
Třídy
Sliby
Symbol
Výchozí parametry
Parametr zbytku funkce
String.includes()
String.startsWith()
String.endsWith()
Array.from()
Klíče pole()
Pole najít()
Pole findIndex()
Nové matematické metody
Vlastnosti nového čísla
Nové číselné metody
Nové globální metody
Záznamy objektů
Moduly JavaScriptu
Safari 10 a Edge 14 byly první prohlížeče, které plně podporovaly ES6:
Chrome 58 | Edge 14 | Firefox 54 | Safari 10 | Opera 55 |
Jan 2017 | Aug 2016 | Mar 2017 | Jul 2016 | Aug 2018 |
Klíčové slovo let
vám umožňuje deklarovat proměnnou pomocí blokový rozsah.
var x = 10;
// Here x is 10
{
let x = 2;
// Here x is 2
}
// Here x is 10
Zkuste to sami →
<!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>
Přečtěte si více o let
v kapitole: JavaScript Let.
Klíčové slovo const
vám umožňuje deklarovat konstantu (a JavaScript proměnná s konstantní hodnotou).
Konstanty jsou podobné letovým proměnným s tím rozdílem, že hodnotu nelze změnit.
var x = 10;
// Here x is 10
{
const x = 2;
// Here x is 2
}
// Here x is 10
Zkuste to sami →
<!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>
Přečtěte si více o const
v kapitole: JavaScript Const.
Šipkové funkce umožňují krátkou syntaxi pro zápis funkčních výrazů.
Nepotřebujete klíčové slovo function
, klíčové slovo return
a složené závorky.
// ES5
var x = function(x, y) {
return x * y;
}
// ES6
const x = (x, y) => x * y;
Zkuste to sami →
<!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>
Funkce šipek nemají vlastní toto
. Nejsou příliš vhodné pro definování objektových metod.
Funkce šipek nejsou zvednuté. Musí být definovány před použitím.
Pomocí const
je bezpečnější než použití var
, protože výraz funkce ano vždy konstantní hodnotu.
Klíčové slovo return
a složené závorky můžete vynechat pouze v případě, že se jedná o jeden příkaz. Z tohoto důvodu může být dobrým zvykem je vždy uchovávat:
const x = (x, y) => { return x * y };
Zkuste to sami →
<!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>
Další informace o funkcích šipek naleznete v kapitole: Funkce šipek JavaScriptu.
Operátor ... rozšiřuje iterovatelný (jako pole) do více prvků:
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];
Zkuste to sami →
<!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>
Operátor ... lze použít k rozšíření iterovatelného do více argumentů pro volání funkcí:
const numbers = [23,55,21,87,56];
let maxValue = Math.max(...numbers);
Zkuste to sami →
<!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>
Příkaz for/of
JavaScriptu se zacyklí prostřednictvím hodnot iterovatelných objektů.
for/of
umožňuje smyčku přes datové struktury které jsou iterovatelné, jako jsou pole, řetězce, mapy, seznamy uzlů a další.
Smyčka for/of
má následující syntaxi:
for (variable of iterable) {
// code block to be executed
}
proměnná - pro každou iteraci je hodnota další vlastnosti přiřazené k proměnné. Proměnnou lze deklarovat pomocí const
, let
nebo var
.
iterovatelný - objekt, který má vlastnosti iterovatelné.
const cars = ["BMW", "Volvo", "Mini"];
let text = "";
for (let x of cars) {
text += x + " ";
}
Zkuste to sami →
<!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 + " ";
}
Zkuste to sami →
<!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>
Více se dozvíte v kapitole: JavaScript Loop For/In/Of.
Schopnost používat objekt jako klíč je důležitou funkcí mapy.
const fruits = new Map([
["apples", 500],
["bananas", 300],
["oranges", 200]
]);
Zkuste to sami →
<!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>
Další informace o objektech mapy a rozdílu mezi mapou a polem naleznete v kapitole: Mapy JavaScript.
// Create a Set
const letters = new Set();
// Add some values to the Set
letters.add("a");
letters.add("b");
letters.add("c");
Zkuste to sami →
<!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>
Více o objektech Set se dozvíte v kapitole: Sady JavaScriptu.
Třídy JavaScriptu jsou šablony pro objekty JavaScriptu.
K vytvoření třídy použijte klíčové slovo class
.
Vždy přidejte metodu s názvem constructor()
:
class ClassName {
constructor() { ... }
}
class Car {
constructor(name, year) {
this.name = name;
this.year = year;
}
}
Výše uvedený příklad vytvoří třídu s názvem "Auto".
Třída má dvě počáteční vlastnosti: "name" a "year".
Třída JavaScriptu není objekt.
Je to šablona pro objekty JavaScriptu.
Když máte třídu, můžete ji použít k vytváření objektů:
const myCar1 = new Car("Ford", 2014);
const myCar2 = new Car("Audi", 2019);
Zkuste to sami →
<!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>
Více o třídách se dozvíte v kapitole: Třídy JavaScriptu.
Promise je objekt JavaScriptu, který propojuje „Produkce kódu“ a „Konzumace kódu“.
„Producing Code“ může nějakou dobu trvat a „Consuming Code“ musí počkat na výsledek.
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;
});
Zkuste to sami →
<!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>
Více o slibech se dozvíte v kapitole: JavaScriptové sliby.
JavaScript Symbol je primitivní datový typ stejně jako Number, String nebo Boolean.
Představuje jedinečný „skrytý“ identifikátor, ke kterému nemá náhodně přístup žádný jiný kód.
Pokud například různí kodéři chtějí přidat vlastnost person.id k objektu person, který patří do kódu třetí strany, mohli vzájemně mísit hodnoty.
Použití Symbol() k vytvoření jedinečných identifikátorů řeší tento problém:
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
Zkuste to sami →
<!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>
Symboly jsou vždy jedinečné.
Pokud vytvoříte dva symboly se stejným popisem, budou mít různé hodnoty:
Symbol("id") == Symbol("id"); // false
ES6 umožňuje, aby parametry funkcí měly výchozí hodnoty.
function myFunction(x, y = 10) { // y is 10 if not passed or undefined return x + y;
}
myFunction(5); // will return 15
Zkuste to sami →
<!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>
Parametr rest (...) umožňuje funkci zacházet s neurčitým počtem argumentů jako s polem:
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);
Zkuste to sami →
<!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>
Metoda includes()
vrací true
, pokud řetězec obsahuje zadanou hodnotu, jinak false
:
let text = "Hello world, welcome to the universe.";
text.includes("world") // Returns true
Zkuste to sami →
<!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>
Metoda startsWith()
vrací true
pokud řetězec začíná zadanou hodnotou, jinak false
:
let text = "Hello world, welcome to the universe.";
text.startsWith("Hello") // Returns true
Zkuste to sami →
<!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>
Metoda endsWith()
vrací hodnotu true
pokud řetězec končí zadanou hodnotou, jinak false
:
var text = "John Doe";
text.endsWith("Doe") // Returns true
Zkuste to sami →
<!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>
Metoda Array.from()
vrací objekt Array z libovolného objektu s délkou vlastnost nebo jakýkoli iterovatelný objekt.
Vytvořte pole z řetězce:
Array.from("ABCDEFG") // Returns [A,B,C,D,E,F,G]
Zkuste to sami →
<!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>
Metoda keys()
vrací objekt Array Iterator s klíči pole.
Vytvořte objekt Array Iterator obsahující klíče pole:
const fruits = ["Banana", "Orange", "Apple", "Mango"];
const keys = fruits.keys();
let text = "";
for (let x of keys) {
text += x + "<br>";
}
Zkuste to sami →
<!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>
Metoda find()
vrací hodnotu prvního prvku pole, který předává testovací funkce.
Tento příklad najde (vrátí hodnotu ) první prvek, který je větší než 18:
const numbers = [4, 9, 16, 25, 29];
let first =
numbers.find(myFunction);
function myFunction(value, index, array) {
return
value > 18;
}
Zkuste to sami →
<!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>
Všimněte si, že funkce má 3 argumenty:
Hodnota položky
Index položky
Samotné pole
Metoda findIndex()
vrací index prvního prvku pole, který projde testovací funkcí.
Tento příklad najde index prvního prvku, který je větší než 18:
const numbers = [4, 9, 16, 25, 29];
let first =
numbers.findIndex(myFunction);
function myFunction(value, index, array) {
return
value > 18;
}
Zkuste to sami →
<!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>
Všimněte si, že funkce má 3 argumenty:
Hodnota položky
Index položky
Samotné pole
ES6 přidal do objektu Math následující metody:
Math.trunc()
Math.sign()
Math.cbrt()
Math.log2()
Math.log10()
Math.trunc(x)
vrací část celého čísla 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
Zkuste to sami →
<!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)
vrátí, pokud je x záporné, nulové nebo kladné:
Math.sign(-4); // returns -1
Math.sign(0); // returns 0
Math.sign(4); // returns 1
Zkuste to sami →
<!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)
vrátí odmocninu x:
Math.cbrt(8); // returns 2
Math.cbrt(64); // returns 4
Math.cbrt(125); // returns 5
Zkuste to sami →
<!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)
vrací základní 2 logaritmus x:
Math.log2(2); // returns 1
Zkuste to sami →
<!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)
vrací základní 10 logaritmus x:
Math.log10(10); // returns 1
Zkuste to sami →
<!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 přidal do objektu Number následující vlastnosti:
EPSILON
MIN_SAFE_INTEGER
MAX_SAFE_INTEGER
let x = Number.EPSILON;
Zkuste to sami →
<!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;
Zkuste to sami →
<!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;
Zkuste to sami →
<!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 přidal 2 nové metody do objektu Number:
Number.isInteger()
Number.isSafeInteger()
Pokud je argument celé číslo, metoda Number.isInteger()
vrátí true
.
Number.isInteger(10); // returns true
Number.isInteger(10.5); // returns false
Zkuste to sami →
<!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>
Bezpečné celé číslo je celé číslo, které lze přesně vyjádřit jako číslo s dvojnásobnou přesností.
Pokud je argumentem bezpečné celé číslo, metoda Number.isSafeInteger()
vrací true
.
Number.isSafeInteger(10); // returns true
Number.isSafeInteger(12345678901234567890); // returns false
Zkuste to sami →
<!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>
Bezpečná celá čísla jsou celá čísla od -(253 - 1) do +(253 - 1).
Toto je bezpečné: 9007199254740991. Toto není bezpečné: 9007199254740992.
ES6 přidal 2 nové metody globálních čísel:
isFinite()
isNaN()
Globální metoda isFinite()
vrací false
, pokud je argument Infinity
nebo NaN
.
Jinak vrátí true
:
isFinite(10/0); // returns false
isFinite(10/1); // returns true
Zkuste to sami →
<!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>
Globální metoda isNaN()
vrátí true
, pokud je argument NaN
. Jinak vrátí false
:
isNaN("Hello"); // returns true
Zkuste to sami →
<!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>
Vytvořte Iterátor pole a poté iterujte přes páry klíč/hodnota:
const fruits = ["Banana", "Orange", "Apple", "Mango"];
const f = fruits.entries();
for (let x of f) {
document.getElementById("demo").innerHTML += x;
}
Zkuste to sami →
<!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>
Metoda entries()
vrací objekt Array Iterator s páry klíč/hodnota:
[0, "Banán"]
[1, "Pomeranč"]
[2, "Jablko"]
[3, "Mango"]
Metoda entries()
nemění původní pole.
Moduly se importují dvěma různými způsoby:
Importujte pojmenované exporty ze souboru person.js:
import { name, age } from "./person.js";
Zkuste to sami →
<!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>
Importujte výchozí export ze souboru message.js:
import message from "./message.js";
Zkuste to sami →
<!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>
Další informace o modulech naleznete v: Moduly JavaScriptu.