Staré verze JS jsou pojmenovány podle čísel: ES5 (2009) a ES6 (2015).
Od roku 2016 jsou verze pojmenovány podle roku: ECMAScript 2016, 2017, 2018, 2019, ...
Promise any():style="word-wrap: break-word;">const first=wait Promise.any([prom1,prom2,prom3]);
Řetězec nahraditVše()
Číselné oddělovače (_)
Pole na()
Řetězec na()
RegExp /d
Object.hasOwn()
chyba.příčina
čekat na dovoz
Soukromé metody a obory
Deklarace pole třídy
Tyto funkce jsou relativně nové.
Starší prohlížeče mohou potřebovat alternativní kód (Polyfill)
ES2021 zavedl řetězcovou metodu replaceAll()
:
text = text.replaceAll("Cats","Dogs");
text = text.replaceAll("cats","dogs");
Zkuste to sami →
<!DOCTYPE html>
<html>
<body>
<h1>JavaScript Strings</h1>
<h2>The replaceAll() Method</h2>
<p>ES2021 intoduced the string method replaceAll().</p>
<p id="demo"></p>
<script>
let text = "I love cats. Cats are very easy to love. Cats are very popular."
text = text.replaceAll("Cats","Dogs");
text = text.replaceAll("cats","dogs");
document.getElementById("demo").innerHTML = text;
</script>
</body>
</html>
Metoda replaceAll()
umožňuje zadat a regulární výraz místo řetězce, který má být nahrazen.
Pokud je parametrem regulární výraz, musí být nastaven globální příznak (g), jinak je vyvolána chyba TypeError.
text = text.replaceAll(/Cats/g,"Dogs");
text = text.replaceAll(/cats/g,"dogs");
Zkuste to sami →
<!DOCTYPE html>
<html>
<body>
<h1>JavaScript Strings</h1>
<h2>The replaceAll() Method</h2>
<p>ES2021 intoduced the string method replaceAll().</p>
<p id="demo"></p>
<script>
let text = "I love cats. Cats are very easy to love. Cats are very popular";
text = text.replaceAll(/Cats/g,"Dogs");
text = text.replaceAll(/cats/g,"dogs");
document.getElementById("demo").innerHTML = text;
</script>
</body>
</html>
ES2020 zavedl řetězcovou metodu matchAll().
ES2021 zavedl číselný oddělovač (_), aby byla čísla čitelnější:
const num = 1_000_000_000;
Zkuste to sami →
<!DOCTYPE html>
<html>
<body>
<h1>JavaScript Numbers</h1>
<p>ES2021 intoduced the numeric separator (_) to make numbers more readable:</p>
<p id="demo"></p>
<script>
const num = 1_000_000_000;
document.getElementById("demo").innerHTML = num;
</script>
</body>
</html>
Číselný oddělovač je pouze pro vizuální použití.
const num1 = 1_000_000_000;
const num2 = 1000000000;
(num1 === num2);
Zkuste to sami →
<!DOCTYPE html>
<html>
<body>
<h1>JavaScript Numbers</h1>
<p>ES2021 intoduced the numeric separator (_) to make numbers more readable:</p>
<p>Is 1_000_000_000 the same as 1000000000?</p>
<p id="demo"></p>
<script>
const num1 = 1_000_000_000;
const num2 = 1000000000;
document.getElementById("demo").innerHTML = (num1 === num2);
</script>
</body>
</html>
Číselný oddělovač lze umístit kdekoli v čísle:
const num1 = 1_2_3_4_5;
Zkuste to sami →
<!DOCTYPE html>
<html>
<body>
<h1>JavaScript Numbers</h1>
<p>ES2021 intoduced the numeric separator (_) to make numbers more readable:</p>
<p id="demo"></p>
<script>
const num = 1_2_3_4_5;
document.getElementById("demo").innerHTML = num;
</script>
</body>
</html>
Číselný oddělovač není povolen na začátku ani na konci čísla.
V JavaScriptu mohou pouze proměnné začínat znakem _.
Číselný oddělovač je podporován ve všech moderních prohlížečích od ledna 2020:
Chrome 75 | Edge 79 | Firefox 74 | Safari 13.1 | Opera 67 |
Jun 2019 | Jan 2020 | Oct 2019 | Sep 2019 | Jun 2019 |
at()
ES2022 zavedl metodu pole at()
:
Získejte třetí prvek ovoce:
const fruits = ["Banana", "Orange", "Apple", "Mango"];
let fruit = fruits.at(2);
Zkuste to sami →
<!DOCTYPE html>
<html>
<body>
<h1>JavaScript Arrays</h1>
<h2>The at() Method</h2>
<p>The at() method returns an indexed element from an array:</p>
<p id="demo"></p>
<script>
const fruits = ["Banana", "Orange", "Apple", "Mango"];
let fruit = fruits.at(2);
document.getElementById("demo").innerHTML = fruit;
</script>
</body>
</html>
Získejte třetí prvek ovoce:
const fruits = ["Banana", "Orange", "Apple", "Mango"];
let fruit = fruits[2];
Zkuste to sami →
<!DOCTYPE html>
<html>
<body>
<h1>JavaScript Arrays</h1>
<h2>Bracket Notation</h2>
<p>The bracked notation [] returns an indexed element from an array:</p>
<p id="demo"></p>
<script>
const fruits = ["Banana", "Orange", "Apple", "Mango"];
let fruit = fruits[2];
document.getElementById("demo").innerHTML = fruit;
</script>
</body>
</html>
Metoda at()
vrací indexovaný prvek z pole.
Metoda at()
vrací totéž jako []
.
Metoda at()
je podporována ve všech moderních prohlížečích od března 2022:
Chrome 92 | Edge 92 | Firefox 90 | Safari 15.4 | Opera 78 |
Apr 2021 | Jul 2021 | Jul 2021 | Mar 2022 | Aug 2021 |
Mnoho jazyků umožňuje indexování záporných závorek
jako [-1] pro přístup k prvkům z konce objekt/pole/řetězec.
To v JavaScriptu není možné, protože [] se používá pro přístup k polím i objektům. obj[-1] odkazuje na hodnotu klíče -1, nikoli na poslední vlastnost objektu.
K vyřešení tohoto problému byla v ES2022 zavedena metoda at()
.
at()
ES2022 zavedl řetězcovou metodu at()
:
Získejte třetí písmeno jména:
const name = "W3Schools";
let letter = name.at(2);
Zkuste to sami →
<!DOCTYPE html>
<html>
<body>
<h1>JavaScript Strings</h1>
<h2>The at() Method</h2>
<p>The at() method returns an indexed element from a string:</p>
<p id="demo"></p>
<script>
const name = "W3Schools";
let letter = name.at(2);
document.getElementById("demo").innerHTML = letter;
</script>
</body>
</html>
Získejte třetí písmeno jména:
const name = "W3Schools";
let letter = name[2];
Zkuste to sami →
<!DOCTYPE html>
<html>
<body>
<h1>JavaScript Strings</h1>
<h2>Bracket Notation</h2>
<p>The bracked notation [] returns an indexed element from a string:</p>
<p id="demo"></p>
<script>
const name = "W3Schools";
let letter = name[2];
document.getElementById("demo").innerHTML = letter;
</script>
</body>
</html>
Metoda at()
vrací indexovaný prvek z řetězce.
Metoda at()
vrací totéž jako []
.
Metoda at()
je podporována ve všech moderních prohlížečích od března 2022:
Chrome 92 | Edge 92 | Firefox 90 | Safari 15.4 | Opera 78 |
Apr 2021 | Jul 2021 | Jul 2021 | Mar 2022 | Aug 2021 |