58 lines
2.4 KiB
Markdown
58 lines
2.4 KiB
Markdown
---
|
||
title: ES6
|
||
localeTitle: ES6
|
||
---
|
||
## ES6
|
||
|
||
6-е издание ECMAScript называется ES6.
|
||
|
||
Он также известен как ES2015.
|
||
|
||
Изменения добавляют много синтаксического сахара, которые позволяют разработчикам создавать приложения в объектно-ориентированном стиле.
|
||
|
||
> Пример ES5:
|
||
|
||
```javascript
|
||
var User = function () {
|
||
function User(name) {
|
||
this._name = name;
|
||
}
|
||
|
||
User.prototype.getName = function getName(x) {
|
||
return 'Mr./Mrs. ' + this._name;
|
||
};
|
||
|
||
return User;
|
||
}();
|
||
```
|
||
|
||
> Пример ES6:
|
||
|
||
```javascript
|
||
class User {
|
||
constructor(name) {
|
||
this._name = name
|
||
}
|
||
|
||
getName() {
|
||
return `Mr./Mrs. ${this._name}`
|
||
}
|
||
}
|
||
```
|
||
|
||
Было введено множество новых синтаксических функций, включая:
|
||
|
||
* классы,
|
||
* модули,
|
||
* шаблонный,
|
||
* для / из петель,
|
||
* генераторные выражения,
|
||
* стрелки,
|
||
* коллекции,
|
||
* обещания.
|
||
|
||
В настоящее время большинство функций доступны во всех популярных браузерах. Таблица [совместимости](https://kangax.github.io/compat-table/es6/) содержит всю информацию о доступности функций всех современных браузеров.
|
||
|
||
Часто появляются новые функции, которые являются частью преемника ES7. Обычный способ - перевести современный JavaScript (ES6, ES7 и другие экспериментальные предложения) на ES5. Это гарантирует, что и старые браузеры могут выполнять код. Существуют такие инструменты, как [Babel,](https://babeljs.io/) который преобразует новый JavaScript в ES5.
|
||
|
||
Помимо синтаксического сахара, поступающего из стандартов ECMAScript, существуют функции, требующие [Polyfill](https://babeljs.io/docs/usage/polyfill) . Обычно они необходимы, потому что к стандарту добавлены целые реализации класса / метода. |