SlideShare une entreprise Scribd logo
1  sur  74
Télécharger pour lire hors ligne
Обзор ES2015(ES6)
Александр Филатов
greybax
Фронтенд разработчик в Akvelon
(vendor в Microsoft)
1
10 лет в мире JavaScript был штиль...
Как вдруг...
17 июня 2015 года генеральное собрание Ecma International
официально одобрило стандарт ECMA-262 6 версии
4
Термины
• TC39 (Ecma Technical Committee 39): комитет по развитию стандарта
ECMA-262.
• ECMAScript: официальное название языка
• JavaScript - это диалект языка ECMAScript
• ECMAScript Harmony: улучшения после ECMAScript 5 (ES6 и ES7)
• ECMAScript.next: кодовое название ECMAScript 6
6
История
История
8
Что нового?
Шаблоны строк
"В ES5 n - это перенос строки."
`В ES6 стало возможным
писать так.`
var name = 'John', age = 22;
`${name} is ${age} years old`
Спецификация 12.2.9, 12.3.7
10
let + const
function f() {
let x;
{
const x = "sneaky"; // ok, block scoped name
x = "foo"; // error, const
}
let x = "inner"; // error, already declared in block
}
Спецификация 13.2.1
11
Сокращённый формат задания объектов
var a = {'obj1': obj1, 'obj2': obj2}
// аналогично
var a = {obj1, obj2}
Спецификация 13.2.1
12
Значения по умолчанию для аргументов
функций
function f(x, y=12 ) {
return x + y;
}
f(3) == 15 //true
Спецификация 19.2
13
Спецификация 15.2
Модули
Модули
Позволяют загружать код по требованию (асинхронно) и
обеспечивают уровень абстракции
15
Модули
Экспорт
// calculator/lib/calc.js
let notExported = 'abc';
export function square(x) {
return x * x;
}
export const MY_CONSTANT = 123;
16
Модули
Импорт
// calculator/main.js
import { square } from 'lib/calc';
console.log(square(3));
17
Модули
Импорт
import { square, MY_CONSTANT } from 'lib/calc';
import 'lib/calc' as c;
import { square as squ } from 'lib/calc';
18
Модули
Настройка загрузки модулей
• проверка валидности модуля при импорте (к примеру при помощи
JSHint)
• автоматическая трансляция модулей при импорте (они могут
содержать код CoffeeScript или TypeScript);
• использовать существующие модули (AMD, Node.js)
19
Спецификация 14.2
Arrow-функции
Arrow-функции
Для быстрого определения анонимных функций
var x = function () {}
• собственный scope
• нет неявного return
let x = () => {}
• "лексический" scope
• есть неявный return, но не всегда
21
Arrow-функции
По-старому: сохраняем this
this.x = "yes";
var self = this;
var y = function (){
"use strict"
console.log( self .x)
};
22
Arrow-функции
По-новому: this из внешнего scope
this.x = "yes";
let y = () => {
"use strict"
console.log(this.x)
};
y(); //'yes'
23
Arrow-функции
Неявный return
let add = (a,b) => a + b;
add(2, 3); //5
Явный return
let add = (a,b) => { return a + b };
add(2, 3); //5
24
Спецификация 14.2
Symbol
Тип Symbol
Применяется для идентификаторов свойств объектов.
var sym1 = Symbol();
var sym2 = Symbol("foo");
var sym3 = Symbol("foo");
Symbol("foo") === Symbol("foo"); // false O_o
26
Тип Symbol
Пример
var MyClass = (function() {
var key = Symbol("key") ; // module scoped symbol
function MyClass(prvtData) {
this[key] = prvtData;
}
return MyClass;
})();
var c = new MyClass("hello")
c["key"] === undefined
27
Тип Symbol
Символы не приватные!
Симовол уникален , но не приватен , т.к он может быть получен в
результате рефлексии через метод
Object.getOwnPropertySymbols
28
Спецификация 23.1 - 23.4
Cтруктуры
данных
Map и Set
Упрощают работу со специфичными типами коллекций. Map позволяет
определять коллекции наборов в формате ключ/значение. В качестве
ключа и значения могут выступать любые выражения JavaScript. По
аналогии Set позволяет задать множество любых выражений
JavaScript
30
Map
let data = new Map();
data.set('key', 100);
data.set(undefined, 'some text');
data.has('tag'); //false
data.has(undefined); //true
data.delete(undefined);
data.has(undefined); //false
31
Set
let data = new Set([1, 3, 5, 3]);
data.add(3);
data.size; // 3
data.add(7);
data.has(3); //true
data.has(9); //false
data.delete(3);
data.has(3); //false
32
WeakSet и WeakMap
То же самое, но безопасно , т.е не заботимся об утечках памяти!
Объект удаляется, если на него больше не осталось ссылок, кроме
ссылки из текущей коллекции, что позволяет не беспокоиться об
утечках памяти.
33
WeakMap
let activeUsers = [
{name: "Vasia"},
{name: "Petia"},
{name: "Masha"}
];
// вспомогательная информация хранится отдельно
let weakMap = new WeakMap();
weakMap.set(activeUsers[0], 1);
weakMap.set(activeUsers[1], 2);
weakMap.set(activeUsers[2], 3);
weakMap.get(activeUsers[0]); // 1
activeUsers.splice(0, 1); // Вася более не активный пользователь
// weakMap теперь содержит только 2 элемента
activeUsers.splice(0, 1); // Петя более не активный пользователь
// weakMap теперь содержит только 1 элемент
JS Result Edit on
34
Cтруктуры данных
Итог
• Map — коллекция записей вида ключ: значение. Допускает любые
ключи.
• Set — коллекция уникальных элементов, также допускает любые
ключи.
• WeakMap и WeakSet — «урезанные» варианты Map/Set. Не
коллекции. Ключи только Object. Если ссылка на объект осталась
только в WeakMap/WeakSet — объект удаляется.
35
For-of
For-of
Как 20 лет назад...
for (var index = 0; index < myArray.length; index++) {
console.log(myArray[index]);
}
37
For-of
Как в ES5
myArray. forEach (function (value) {
console.log(value);
});
38
For-of
А как насчет For-in?
for (var index in myArray) {
console.log(myArray[index]);
}
но так делать не стоит...
• строковая арифметика (index - строка)
• проходит по expando-свойствам и свойствам из цепочки прототипов
• проход в случайном порядке! О_о
39
For-of
Нас спасет!
for (var index of myArray) {
console.log(myArray[index]);
}
Выглядит неплохо
• самый лаконичный и наглядный синтаксис
• нет недостатков for-in
• в отличие от forEach(), он работает с break, continue и return
40
For-of
Итог
• for-in нужен для перебора свойств объекта.
• for-of нужен для перебора данных, например, значений массива
• for-of также хорошо работает с большинством массивоподобных
объектов, вроде списков NodeList в DOM
• Работает с объектами Map и Set
• Работает со строками, рассматривая строку как набор символов
Unicode
41
Спецификация 25.2
Генераторы
Генераторы
Генератор - позволяет организовать эффективное выполнение
функций в асинхронном режиме.
43
Генераторы
function* quips(name) {
yield "Hi " + name + "!";
yield "I'm glad that I can participate in 10th meetup in Yaroslavl";
yield "Goodbye!";
}
var meow_iter = quips("Yaroslavl Frontend Meetup");
$("#meow-btn").click(function() {
var result = meow_iter.next();
$("#chat").text(result.value);
if (result.done) {
$("#chat").text("");
$("#chat").text(result.value);
meow_iter = quips("Yaroslavl Frontend Meetup");
}
});
HTML CSS JS Result Edit on
44
Итератор:
class RangeIterator {
constructor(start, stop) {
this.value = start;
this.stop = stop;
}
[Symbol.iterator]() { return this; }
next() {
var value = this.value;
if (value < this.stop) { this.value++;
return {done: false, value: value};
} else {
return {done: true, value:
undefined};
}
}
}
function range(start, stop) {
return new RangeIterator(start, stop);
}
JS Result Edit on
Генератор:
function* range(start, stop) {
for (var i = start; i < stop; i++)
yield i;
}
JS Result Edit on
Генераторы. Зачем?
45
Генераторы
for (var value of range(10, 1000) ) {
console.log(value);
}
46
Генераторы
Где применить возможность генераторов вести себя как итераторы?
• Преобразование любого объекта в итерируемый
• Упрощение функций, создающих массивы
• Результаты необычной длины
• Рефакторинг сложных циклов
• Утилиты для работы с итерируемыми объектами
47
Генераторы
Генератор это
• Итератор, а итератор — это новый стандарт для данных и циклов во
всём ES6
• Попытка избежать спагетти кода в асинхронном коде. К примеру
Q.async() - это экспериментальная попытка сделать асинхронный код
похожим на синхронный при помощи генераторов и промисов
48
Спецификация 25.4
Promise
Promise
Предназначен для получения значений в асинхронном режиме.
Позволяет определить значение, которое пока неизвестно, но будут
определено через какое-то время
50
Promise
};
})
});
});
});
});
Это боль...
51
Promise
new Promise ( resolve , reject ) {
if (testSomething) {
resolve (resValue);
} else {
reject (errValue);
});
52
Promise
requestFromServer()
.then(function(res) {return res2;})
.then(function(res2) {return res3;})
...
.then(function(res3) {return res4;})
Так лучше!
53
Спецификация 14.5
Классы
Классы
class Animal {
constructor() {
this.speed = 0;
}
toString() {
return this.speed === 0 ? ' sleep' : ' play'
}
}
55
Классы
extends
class Cat extends Animal {
constructor() {
super();
this.speed = 10;
}
}
56
Классы
let dog = new Animal();
let cat = new Cat();
console.log(dog.toString()); // sleep
console.log(cat.toString()); // play
console.log(cat instanceof Animal); // true
console.log(cat instanceof Cat); // true
57
Классы
static
class Util {
static inc(x) {return x + 1},
static dec(x) {return x - 1}
}
console.log(Util.inc(5)); // 6
58
Классы
get/set
class O {
constructor() {
this.mx = 'initial';
}
get x() { return this.mx; }
set x(val) { this.mx = val; }
}
59
Классы
"поднятие"
var a = new ClassA(2); // ReferenceError
class ClassA {
constructor(n) {
this.x = n;
}
}
60
Новые методы базовых объектов
• String
• Object
• Array
• Number
• Math
61
Новые методы базовых объектов
Object.is(0, -0); // false
Object.is(NaN, NaN) // true !
0 === -0; // true
NaN === NaN; // false
Использует SameValue(x, y) алгоритм
62
Ситуация сейчас
Хочу
использовать уже
сейчас!
Как использовать новые возможности
ES2015 уже сейчас?
• chrome://flags/ -> Включить
• в io.js или Node достаточно включить флаг --harmony
• использовать транспайлеры es6-tools
66
Что умеет Babel?
• Поддержка новых фич и синтаксиса ES2015(ES6)
• Поддержка новых фич и синтаксиса ES2016(ES7)
• Транспайлинг некоторых фич напрямую в ES5
• Поддержка некоторых фич через полифилы
• Поддерживается пока не все (в частности Proxy)
68
Что дальше?
Будущее Javascript
• Транспайлинг - не только как переходный этап
• Как только браузер начнет поддерживать новую фичу, отключаем ее
транспайлинг
70
И это еще не все...
Ссылки
• Официальная спецификация ES 2015
• Exploring ES6: Upgrade to the next version of JavaScript
• es6-features.org
• Цикл статей ES6 In Depth
• Frontender Magazine
72
Спасибо!
Вопросы?

Contenu connexe

Tendances

Работа с Akka Сluster, @afiskon, scalaby#14
Работа с Akka Сluster, @afiskon, scalaby#14Работа с Akka Сluster, @afiskon, scalaby#14
Работа с Akka Сluster, @afiskon, scalaby#14Vasil Remeniuk
 
Ruby - или зачем мне еще один язык программирования?
Ruby - или зачем мне еще один язык программирования?Ruby - или зачем мне еще один язык программирования?
Ruby - или зачем мне еще один язык программирования?Pavel Tsukanov
 
Анджей Гужовский "Riot.JS, или как приготовить современные Web Components"
Анджей Гужовский "Riot.JS, или как приготовить современные Web Components"Анджей Гужовский "Riot.JS, или как приготовить современные Web Components"
Анджей Гужовский "Riot.JS, или как приготовить современные Web Components"Fwdays
 
Подробная презентация JavaScript 6 в 1
Подробная презентация JavaScript 6 в 1Подробная презентация JavaScript 6 в 1
Подробная презентация JavaScript 6 в 1Vasya Petrov
 
Инструменты для з̶а̶х̶в̶а̶т̶а̶ ̶м̶и̶р̶а̶ отладки в Tarantool
Инструменты для з̶а̶х̶в̶а̶т̶а̶ ̶м̶и̶р̶а̶  отладки в TarantoolИнструменты для з̶а̶х̶в̶а̶т̶а̶ ̶м̶и̶р̶а̶  отладки в Tarantool
Инструменты для з̶а̶х̶в̶а̶т̶а̶ ̶м̶и̶р̶а̶ отладки в TarantoolTimur Safin
 
Memory managment in i os (1)
Memory managment in i os (1)Memory managment in i os (1)
Memory managment in i os (1)it-park
 
WebCamp:Front-end Developers Day. Артем Тритяк "React.js LiveCoding session"
WebCamp:Front-end Developers Day. Артем Тритяк "React.js LiveCoding session"WebCamp:Front-end Developers Day. Артем Тритяк "React.js LiveCoding session"
WebCamp:Front-end Developers Day. Артем Тритяк "React.js LiveCoding session"GeeksLab Odessa
 
Влад Ковташ — Yap Database
Влад Ковташ — Yap DatabaseВлад Ковташ — Yap Database
Влад Ковташ — Yap DatabaseCocoaHeads
 
Особенности совместной работы Ruby и Oracle
Особенности совместной работы Ruby и OracleОсобенности совместной работы Ruby и Oracle
Особенности совместной работы Ruby и OracleNikita Shilnikov
 
Вёрстка в стиле Ruby: HAML, SASS, Compass, CoffeeScript, Jammit
Вёрстка в стиле Ruby: HAML, SASS, Compass, CoffeeScript, JammitВёрстка в стиле Ruby: HAML, SASS, Compass, CoffeeScript, Jammit
Вёрстка в стиле Ruby: HAML, SASS, Compass, CoffeeScript, JammitAndrey Sitnik
 
Erlang и n2o. Web-разработка без JavaScript
Erlang и n2o. Web-разработка без JavaScriptErlang и n2o. Web-разработка без JavaScript
Erlang и n2o. Web-разработка без JavaScriptEugene Tataurov
 
.NET Fest 2018. Сергей Калинец. Azure веб разработка здорового человека
.NET Fest 2018. Сергей Калинец. Azure веб разработка здорового человека.NET Fest 2018. Сергей Калинец. Azure веб разработка здорового человека
.NET Fest 2018. Сергей Калинец. Azure веб разработка здорового человекаNETFest
 
2015-12-05 Вадим Литвинов - Нагрузочное тестирование с MZBench
2015-12-05 Вадим Литвинов - Нагрузочное тестирование с MZBench2015-12-05 Вадим Литвинов - Нагрузочное тестирование с MZBench
2015-12-05 Вадим Литвинов - Нагрузочное тестирование с MZBenchHappyDev
 
Очень вкусный фрукт Guava
Очень вкусный фрукт GuavaОчень вкусный фрукт Guava
Очень вкусный фрукт GuavaEgor Chernyshev
 

Tendances (19)

Erlang tasty & useful stuff
Erlang tasty & useful stuffErlang tasty & useful stuff
Erlang tasty & useful stuff
 
Работа с Akka Сluster, @afiskon, scalaby#14
Работа с Akka Сluster, @afiskon, scalaby#14Работа с Akka Сluster, @afiskon, scalaby#14
Работа с Akka Сluster, @afiskon, scalaby#14
 
Ruby - или зачем мне еще один язык программирования?
Ruby - или зачем мне еще один язык программирования?Ruby - или зачем мне еще один язык программирования?
Ruby - или зачем мне еще один язык программирования?
 
Анджей Гужовский "Riot.JS, или как приготовить современные Web Components"
Анджей Гужовский "Riot.JS, или как приготовить современные Web Components"Анджей Гужовский "Riot.JS, или как приготовить современные Web Components"
Анджей Гужовский "Riot.JS, или как приготовить современные Web Components"
 
Подробная презентация JavaScript 6 в 1
Подробная презентация JavaScript 6 в 1Подробная презентация JavaScript 6 в 1
Подробная презентация JavaScript 6 в 1
 
Coroutines
CoroutinesCoroutines
Coroutines
 
Инструменты для з̶а̶х̶в̶а̶т̶а̶ ̶м̶и̶р̶а̶ отладки в Tarantool
Инструменты для з̶а̶х̶в̶а̶т̶а̶ ̶м̶и̶р̶а̶  отладки в TarantoolИнструменты для з̶а̶х̶в̶а̶т̶а̶ ̶м̶и̶р̶а̶  отладки в Tarantool
Инструменты для з̶а̶х̶в̶а̶т̶а̶ ̶м̶и̶р̶а̶ отладки в Tarantool
 
Memory managment in i os (1)
Memory managment in i os (1)Memory managment in i os (1)
Memory managment in i os (1)
 
WebCamp:Front-end Developers Day. Артем Тритяк "React.js LiveCoding session"
WebCamp:Front-end Developers Day. Артем Тритяк "React.js LiveCoding session"WebCamp:Front-end Developers Day. Артем Тритяк "React.js LiveCoding session"
WebCamp:Front-end Developers Day. Артем Тритяк "React.js LiveCoding session"
 
C sharp deep dive
C sharp deep diveC sharp deep dive
C sharp deep dive
 
Влад Ковташ — Yap Database
Влад Ковташ — Yap DatabaseВлад Ковташ — Yap Database
Влад Ковташ — Yap Database
 
Особенности совместной работы Ruby и Oracle
Особенности совместной работы Ruby и OracleОсобенности совместной работы Ruby и Oracle
Особенности совместной работы Ruby и Oracle
 
Вёрстка в стиле Ruby: HAML, SASS, Compass, CoffeeScript, Jammit
Вёрстка в стиле Ruby: HAML, SASS, Compass, CoffeeScript, JammitВёрстка в стиле Ruby: HAML, SASS, Compass, CoffeeScript, Jammit
Вёрстка в стиле Ruby: HAML, SASS, Compass, CoffeeScript, Jammit
 
Erlang и n2o. Web-разработка без JavaScript
Erlang и n2o. Web-разработка без JavaScriptErlang и n2o. Web-разработка без JavaScript
Erlang и n2o. Web-разработка без JavaScript
 
.NET Fest 2018. Сергей Калинец. Azure веб разработка здорового человека
.NET Fest 2018. Сергей Калинец. Azure веб разработка здорового человека.NET Fest 2018. Сергей Калинец. Azure веб разработка здорового человека
.NET Fest 2018. Сергей Калинец. Azure веб разработка здорового человека
 
2015-12-05 Вадим Литвинов - Нагрузочное тестирование с MZBench
2015-12-05 Вадим Литвинов - Нагрузочное тестирование с MZBench2015-12-05 Вадим Литвинов - Нагрузочное тестирование с MZBench
2015-12-05 Вадим Литвинов - Нагрузочное тестирование с MZBench
 
Очень вкусный фрукт Guava
Очень вкусный фрукт GuavaОчень вкусный фрукт Guava
Очень вкусный фрукт Guava
 
BDD для PHP проектов
BDD для PHP проектовBDD для PHP проектов
BDD для PHP проектов
 
User Aggs In As
User Aggs In AsUser Aggs In As
User Aggs In As
 

En vedette

AddConf. Дмитрий Сошников - Будущее ECMAScript
AddConf. Дмитрий Сошников  - Будущее ECMAScriptAddConf. Дмитрий Сошников  - Будущее ECMAScript
AddConf. Дмитрий Сошников - Будущее ECMAScriptDmitry Soshnikov
 
"Готовим промисы правильно", Андрей Яманов, MoscowJS 24
"Готовим промисы правильно", Андрей Яманов, MoscowJS 24"Готовим промисы правильно", Андрей Яманов, MoscowJS 24
"Готовим промисы правильно", Андрей Яманов, MoscowJS 24MoscowJS
 
DevConf. Дмитрий Сошников - ECMAScript 6
DevConf. Дмитрий Сошников - ECMAScript 6DevConf. Дмитрий Сошников - ECMAScript 6
DevConf. Дмитрий Сошников - ECMAScript 6Dmitry Soshnikov
 
Ecma script 6 in action
Ecma script 6 in actionEcma script 6 in action
Ecma script 6 in actionYuri Trukhin
 
JavaScript-модули "из прошлого в будущее"
JavaScript-модули "из прошлого в будущее"JavaScript-модули "из прошлого в будущее"
JavaScript-модули "из прошлого в будущее"oelifantiev
 
"Как написать компилятор за 15 минут", Андрей Гершун, MoscowJS 24
"Как написать компилятор за 15 минут", Андрей Гершун, MoscowJS 24"Как написать компилятор за 15 минут", Андрей Гершун, MoscowJS 24
"Как написать компилятор за 15 минут", Андрей Гершун, MoscowJS 24MoscowJS
 
HelsinkiJS meet-up. Dmitry Soshnikov - ECMAScript 6
HelsinkiJS meet-up. Dmitry Soshnikov - ECMAScript 6HelsinkiJS meet-up. Dmitry Soshnikov - ECMAScript 6
HelsinkiJS meet-up. Dmitry Soshnikov - ECMAScript 6Dmitry Soshnikov
 
Дэвид Флэнаган — Javascript (5 издание)
Дэвид Флэнаган — Javascript (5 издание)Дэвид Флэнаган — Javascript (5 издание)
Дэвид Флэнаган — Javascript (5 издание)mlatushko
 
Классические архитектуры во фронтенде / Александра Шинкевич (LOVATA)
Классические архитектуры во фронтенде / Александра Шинкевич (LOVATA)Классические архитектуры во фронтенде / Александра Шинкевич (LOVATA)
Классические архитектуры во фронтенде / Александра Шинкевич (LOVATA)Ontico
 
base.network — пиринговый веб на JavaScript / Денис Глазков (Lazada Rus)
base.network — пиринговый веб на JavaScript / Денис Глазков (Lazada Rus)base.network — пиринговый веб на JavaScript / Денис Глазков (Lazada Rus)
base.network — пиринговый веб на JavaScript / Денис Глазков (Lazada Rus)Ontico
 
ECMAScript 6: A Better JavaScript for the Ambient Computing Era
ECMAScript 6: A Better JavaScript for the Ambient Computing EraECMAScript 6: A Better JavaScript for the Ambient Computing Era
ECMAScript 6: A Better JavaScript for the Ambient Computing EraAllen Wirfs-Brock
 
Александр Русаков - TypeScript 2 in action
Александр Русаков - TypeScript 2 in actionАлександр Русаков - TypeScript 2 in action
Александр Русаков - TypeScript 2 in actionMoscowJS
 
ES2015 / ES6: Basics of modern Javascript
ES2015 / ES6: Basics of modern JavascriptES2015 / ES6: Basics of modern Javascript
ES2015 / ES6: Basics of modern JavascriptWojciech Dzikowski
 

En vedette (15)

ES6: The Awesome Parts
ES6: The Awesome PartsES6: The Awesome Parts
ES6: The Awesome Parts
 
доклад
докладдоклад
доклад
 
AddConf. Дмитрий Сошников - Будущее ECMAScript
AddConf. Дмитрий Сошников  - Будущее ECMAScriptAddConf. Дмитрий Сошников  - Будущее ECMAScript
AddConf. Дмитрий Сошников - Будущее ECMAScript
 
"Готовим промисы правильно", Андрей Яманов, MoscowJS 24
"Готовим промисы правильно", Андрей Яманов, MoscowJS 24"Готовим промисы правильно", Андрей Яманов, MoscowJS 24
"Готовим промисы правильно", Андрей Яманов, MoscowJS 24
 
DevConf. Дмитрий Сошников - ECMAScript 6
DevConf. Дмитрий Сошников - ECMAScript 6DevConf. Дмитрий Сошников - ECMAScript 6
DevConf. Дмитрий Сошников - ECMAScript 6
 
Ecma script 6 in action
Ecma script 6 in actionEcma script 6 in action
Ecma script 6 in action
 
JavaScript-модули "из прошлого в будущее"
JavaScript-модули "из прошлого в будущее"JavaScript-модули "из прошлого в будущее"
JavaScript-модули "из прошлого в будущее"
 
"Как написать компилятор за 15 минут", Андрей Гершун, MoscowJS 24
"Как написать компилятор за 15 минут", Андрей Гершун, MoscowJS 24"Как написать компилятор за 15 минут", Андрей Гершун, MoscowJS 24
"Как написать компилятор за 15 минут", Андрей Гершун, MoscowJS 24
 
HelsinkiJS meet-up. Dmitry Soshnikov - ECMAScript 6
HelsinkiJS meet-up. Dmitry Soshnikov - ECMAScript 6HelsinkiJS meet-up. Dmitry Soshnikov - ECMAScript 6
HelsinkiJS meet-up. Dmitry Soshnikov - ECMAScript 6
 
Дэвид Флэнаган — Javascript (5 издание)
Дэвид Флэнаган — Javascript (5 издание)Дэвид Флэнаган — Javascript (5 издание)
Дэвид Флэнаган — Javascript (5 издание)
 
Классические архитектуры во фронтенде / Александра Шинкевич (LOVATA)
Классические архитектуры во фронтенде / Александра Шинкевич (LOVATA)Классические архитектуры во фронтенде / Александра Шинкевич (LOVATA)
Классические архитектуры во фронтенде / Александра Шинкевич (LOVATA)
 
base.network — пиринговый веб на JavaScript / Денис Глазков (Lazada Rus)
base.network — пиринговый веб на JavaScript / Денис Глазков (Lazada Rus)base.network — пиринговый веб на JavaScript / Денис Глазков (Lazada Rus)
base.network — пиринговый веб на JavaScript / Денис Глазков (Lazada Rus)
 
ECMAScript 6: A Better JavaScript for the Ambient Computing Era
ECMAScript 6: A Better JavaScript for the Ambient Computing EraECMAScript 6: A Better JavaScript for the Ambient Computing Era
ECMAScript 6: A Better JavaScript for the Ambient Computing Era
 
Александр Русаков - TypeScript 2 in action
Александр Русаков - TypeScript 2 in actionАлександр Русаков - TypeScript 2 in action
Александр Русаков - TypeScript 2 in action
 
ES2015 / ES6: Basics of modern Javascript
ES2015 / ES6: Basics of modern JavascriptES2015 / ES6: Basics of modern Javascript
ES2015 / ES6: Basics of modern Javascript
 

Similaire à Обзор ES2015(ES6)

Стажировка 2016-07-14 02 Евгений Тарасенко. JavaScript
Стажировка 2016-07-14 02 Евгений Тарасенко. JavaScriptСтажировка 2016-07-14 02 Евгений Тарасенко. JavaScript
Стажировка 2016-07-14 02 Евгений Тарасенко. JavaScriptSmartTools
 
Зачем нужна Scala?
Зачем нужна Scala?Зачем нужна Scala?
Зачем нужна Scala?Vasil Remeniuk
 
ECMAscript harmony
ECMAscript harmonyECMAscript harmony
ECMAscript harmonyFDConf
 
Solit 2014, EcmaScript 6 in Action, Трухин Юрий
Solit 2014, EcmaScript 6 in Action, Трухин Юрий Solit 2014, EcmaScript 6 in Action, Трухин Юрий
Solit 2014, EcmaScript 6 in Action, Трухин Юрий solit
 
Внутреннее устройство и оптимизация бандла webpack
Внутреннее устройство и оптимизация бандла webpackВнутреннее устройство и оптимизация бандла webpack
Внутреннее устройство и оптимизация бандла webpackAlexey Ivanov
 
Clojure – есть ли жизнь после Java
Clojure – есть ли жизнь после JavaClojure – есть ли жизнь после Java
Clojure – есть ли жизнь после JavaOlim Saidov
 
I tmozg js_school
I tmozg js_schoolI tmozg js_school
I tmozg js_schoolITmozg
 
Present saint-per3-by-pavel-vlasov
Present saint-per3-by-pavel-vlasovPresent saint-per3-by-pavel-vlasov
Present saint-per3-by-pavel-vlasovPavel Vlasov
 
Подробная презентация JavaScript 6 в 1
Подробная презентация JavaScript 6 в 1Подробная презентация JavaScript 6 в 1
Подробная презентация JavaScript 6 в 1Vasya Petrov
 
Михаил Давыдов — JavaScript: Базовые знания
Михаил Давыдов — JavaScript: Базовые знанияМихаил Давыдов — JavaScript: Базовые знания
Михаил Давыдов — JavaScript: Базовые знанияYandex
 
Scala, SBT & Play! for Rapid Application Development
Scala, SBT & Play! for Rapid Application DevelopmentScala, SBT & Play! for Rapid Application Development
Scala, SBT & Play! for Rapid Application DevelopmentAnton Kirillov
 
Deep Dive C# by Sergey Teplyakov
Deep Dive  C# by Sergey TeplyakovDeep Dive  C# by Sergey Teplyakov
Deep Dive C# by Sergey TeplyakovAlex Tumanoff
 
Михаил Давыдов "Масштабируемые JavaScript-приложения"
Михаил Давыдов "Масштабируемые JavaScript-приложения"Михаил Давыдов "Масштабируемые JavaScript-приложения"
Михаил Давыдов "Масштабируемые JavaScript-приложения"Yandex
 
Инструментируй это
Инструментируй этоИнструментируй это
Инструментируй этоRoman Dvornov
 

Similaire à Обзор ES2015(ES6) (20)

Стажировка 2016-07-14 02 Евгений Тарасенко. JavaScript
Стажировка 2016-07-14 02 Евгений Тарасенко. JavaScriptСтажировка 2016-07-14 02 Евгений Тарасенко. JavaScript
Стажировка 2016-07-14 02 Евгений Тарасенко. JavaScript
 
Зачем нужна Scala?
Зачем нужна Scala?Зачем нужна Scala?
Зачем нужна Scala?
 
ECMAscript harmony
ECMAscript harmonyECMAscript harmony
ECMAscript harmony
 
Асинхронный JavaScript
Асинхронный JavaScriptАсинхронный JavaScript
Асинхронный JavaScript
 
Solit 2014, EcmaScript 6 in Action, Трухин Юрий
Solit 2014, EcmaScript 6 in Action, Трухин Юрий Solit 2014, EcmaScript 6 in Action, Трухин Юрий
Solit 2014, EcmaScript 6 in Action, Трухин Юрий
 
Clojure #1
Clojure #1Clojure #1
Clojure #1
 
Scala for android
Scala for androidScala for android
Scala for android
 
Внутреннее устройство и оптимизация бандла webpack
Внутреннее устройство и оптимизация бандла webpackВнутреннее устройство и оптимизация бандла webpack
Внутреннее устройство и оптимизация бандла webpack
 
Clojure – есть ли жизнь после Java
Clojure – есть ли жизнь после JavaClojure – есть ли жизнь после Java
Clojure – есть ли жизнь после Java
 
I tmozg js_school
I tmozg js_schoolI tmozg js_school
I tmozg js_school
 
Present saint-per3-by-pavel-vlasov
Present saint-per3-by-pavel-vlasovPresent saint-per3-by-pavel-vlasov
Present saint-per3-by-pavel-vlasov
 
Подробная презентация JavaScript 6 в 1
Подробная презентация JavaScript 6 в 1Подробная презентация JavaScript 6 в 1
Подробная презентация JavaScript 6 в 1
 
Михаил Давыдов — JavaScript: Базовые знания
Михаил Давыдов — JavaScript: Базовые знанияМихаил Давыдов — JavaScript: Базовые знания
Михаил Давыдов — JavaScript: Базовые знания
 
Scala, SBT & Play! for Rapid Application Development
Scala, SBT & Play! for Rapid Application DevelopmentScala, SBT & Play! for Rapid Application Development
Scala, SBT & Play! for Rapid Application Development
 
2014-11-01 03 Николай Линкер. Open your clojure
2014-11-01 03 Николай Линкер. Open your clojure2014-11-01 03 Николай Линкер. Open your clojure
2014-11-01 03 Николай Линкер. Open your clojure
 
Deep Dive C# by Sergey Teplyakov
Deep Dive  C# by Sergey TeplyakovDeep Dive  C# by Sergey Teplyakov
Deep Dive C# by Sergey Teplyakov
 
Михаил Давыдов "Масштабируемые JavaScript-приложения"
Михаил Давыдов "Масштабируемые JavaScript-приложения"Михаил Давыдов "Масштабируемые JavaScript-приложения"
Михаил Давыдов "Масштабируемые JavaScript-приложения"
 
UWDC 2013, Yii2
UWDC 2013, Yii2UWDC 2013, Yii2
UWDC 2013, Yii2
 
Scala on android
Scala on androidScala on android
Scala on android
 
Инструментируй это
Инструментируй этоИнструментируй это
Инструментируй это
 

Обзор ES2015(ES6)