URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID3
Нить номер: 108274
[ Назад ]

Исходное сообщение
"Утверждён стандарт ECMAScript 7 (2016)"

Отправлено opennews , 17-Июн-16 11:17 
На очередном собрании Генеральной Ассамблеи ECMA (http://www.ecma-international.org/) официально утверждён (https://mail.mozilla.org/pipermail/es-discuss/2016-June/0462...) стандарт ECMAScript 2016 (http://www.ecma-international.org/ecma-262/7.0/index.html) (ECMAScript 7 или "ECMA-262 7th edition"), определяющий базовые функциональные возможности JavaScript. ECMAScript 7 примечателен переходом (https://www.opennet.me/opennews/art.shtml?num=44355) к новому непрерывному процессу формирования стандартов, которые планируется выпускать ежегодно. Напомним, что прошлый стандарт ECMAScript 6 был утверждён в июне прошлого года, спустя шесть лет с момента принятия ECMAScript 5, и содержал достаточно большую порцию новшеств, которые ещё не полностью (http://kangax.github.io/compat-table/es7/) реализованы в современных браузерах.


В отличие от ECMAScript 6 спецификация ECMAScript 7 содержит относительно немного изменений, которые развивались в рамках непрерывно обновляемого варианта спецификации ECMAScript Next (http://kangax.github.io/compat-table/esnext/). В стандарт из данной черновой спецификации были перенесены уже поддерживаемые браузерами возможности, поэтому ECMAScript 7 сразу доступен во всех основных браузерах и не требует дополнительного времени на реализацию.


В ECMAScript 7 вошли изменения, связанные с устранением недоработок и внесением уточнений к ECMAScript 6, а также добавлено несколько новшеств (https://developer.mozilla.org/en-US/docs/Web/JavaScript/New_...):


-  Оператор "** (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Refe...)" для возведения в степень. Например, вместо "Math.pow(x, y)" теперь можно указать
"x ** y";

-  Методы Array.prototype.includes() (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Refe...) и TypedArray.prototype.includes() (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Refe...)  для определения наличия элементов в массиве. Напрмер, "[1, 2, 3].includes(2)" вернёт true, а "[1, 2, 3].includes(4)" вернёт false;

-  Методы String.prototype.padStart() (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Refe...) и String.prototype.padEnd() (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Refe...) для доведения строки до заданного размера путём добавления повторяющегося шаблона заполнения в начало или конец строки. Например, 'abc'.padEnd(10, "foo") выдаст "abcfoofoof", а 'abc'.padEnd(6,"123465") выдаст "abc123";


-  Для генераторов и методов генераторов больше не вызываются конструкторы;

URL: https://mail.mozilla.org/pipermail/es-discuss/2016-June/0462...
Новость: http://www.opennet.me/opennews/art.shtml?num=44618


Содержание

Сообщения в этом обсуждении
"Утверждён стандарт ECMAScript 7 (2016)"
Отправлено Аноним , 17-Июн-16 11:17 
> String.prototype.padStart() и String.prototype.padEnd()

это на них так модуль удаленный из npm повлиял?


"Утверждён стандарт ECMAScript 7 (2016)"
Отправлено Аноним , 17-Июн-16 12:21 
Спецификация была ещё с июля 2015 года, а в stage 3(говорит вендорам, что пора бы уже у себя это запилить) было уже в ноябре того же года

"Утверждён стандарт ECMAScript 7 (2016)"
Отправлено Аноним , 17-Июн-16 11:36 
>ECMAScript 7 примечателен переходом к новому непрерывному процессу формирования стандартов

We need to go deeper. Ждем стандарт на процесс формирования стандартов.


"Утверждён стандарт ECMAScript 7 (2016)"
Отправлено Crazy Alex , 17-Июн-16 11:57 
Было бы неплохо, кстати

"Утверждён стандарт ECMAScript 7 (2016)"
Отправлено КО , 17-Июн-16 17:22 
ГОСТ Р 1.2-92

"Утверждён стандарт ECMAScript 7 (2016)"
Отправлено Crazy Alex , 18-Июн-16 01:48 
Если стандарт не международный - это не стандарт. тем более в IT.

"Утверждён стандарт ECMAScript 7 (2016)"
Отправлено Анонимомус , 17-Июн-16 11:36 
Странные ребята, .includes() с одной стороны нужен, а с другой уже есть .indexOf, лучше бы форматирование дат сделали, чем дублировать фукционал.

"Утверждён стандарт ECMAScript 7 (2016)"
Отправлено Анином , 17-Июн-16 11:41 
indexOf в отличии от includes например не отреагирует на NaN
[NaN].indexOf(NaN); // -1
[NaN].includes(NaN); // true

"Утверждён стандарт ECMAScript 7 (2016)"
Отправлено azure , 17-Июн-16 14:22 
> [NaN].includes(NaN); // true

Отлично! Экспектед бихевиор. Особенно учитывая что NaN != NaN. Консистентно, че.


"Утверждён стандарт ECMAScript 7 (2016)"
Отправлено Аноним , 18-Июн-16 00:35 
И к чему этот пассаж? NaN найти в массиве (без ручного перебора) можно найти только таким методом.

"Утверждён стандарт ECMAScript 7 (2016)"
Отправлено azure , 18-Июн-16 23:54 
> И к чему этот пассаж? NaN найти в массиве (без ручного перебора)
> можно найти только таким методом.

Если ищете именно NaN, то есть isNaN() и перебор по массиву. По моему разумению NaN это сугубо ошибочный результат неких вычислений, и его не то что искать в массиве не надо, его нужно туда не класть, потому что он никчемен и не может быть полезным образом использован далее. На человеческом языке это "хрень непонятная". Никуда её толком не воткнешь. Об этом намекает спецификация языка в которой закреплено что NaN != NaN. Одна хрень не равна другой хрени.
Не вижу никакой силы в аргументе с поиском NaN в методе includes(). Это просто слабый аргумент.


"Утверждён стандарт ECMAScript 7 (2016)"
Отправлено Аноним , 06-Июл-16 16:11 
Интересно, где-то реализован полный набор:
+-NaN Null +-Inf unassigned
одновременно?

"Утверждён стандарт ECMAScript 7 (2016)"
Отправлено Аноним , 17-Июн-16 11:50 
indexOf возвращет индекс найденного элемента иначе -1, а includes возващает булево значение.

"Утверждён стандарт ECMAScript 7 (2016)"
Отправлено Анонимомус , 17-Июн-16 12:05 
> indexOf возвращет индекс найденного элемента иначе -1, а includes возващает булево значение.

Все, капут!! -1 к булевому не привести!

[1,2,3].indexOf(2) !== -1
или
!!~[1,2,3].indexOf(2)

стало
[1,2,3].includes(2)


"Утверждён стандарт ECMAScript 7 (2016)"
Отправлено Аноним , 17-Июн-16 12:14 
indexOf не найдет NaN, успокойся. Также includes можно передать стартовую позицию для поиска (это явно быстрее перебора с нулевой позиции indexOf в огромных массивах).

"Утверждён стандарт ECMAScript 7 (2016)"
Отправлено Анонимомус , 17-Июн-16 12:32 
Учитывая что в js NaN != NaN, довольно странное поведение, да и вообще сложно представить когда это нужно, а у indexOf так же есть стартовая позиция https://developer.mozilla.org/en/docs/Web/JavaScript/Referen...

"Утверждён стандарт ECMAScript 7 (2016)"
Отправлено тоже Аноним , 17-Июн-16 15:27 
> indexOf не найдет NaN, успокойся.

Спокойствие дороговато выходит.
Раньше разработчику нужно было только помнить, что indexOf не найдет NaN, потому что NaN !== NaN.
Теперь ему еще нужно помнить, что include найдет NaN, несмотря на то, что NaN !== NaN.

Мне одному это напоминает Пых?


"Утверждён стандарт ECMAScript 7 (2016)"
Отправлено synweap , 17-Июн-16 16:15 
Array.prototype.includes в данном вопросе ведет себя так же, как и Set.prototype.has. Все вполне логично. Если зачем-то понадобился индекс NaN, делаешь array.findIndex(isNaN).

"Утверждён стандарт ECMAScript 7 (2016)"
Отправлено тоже Аноним , 18-Июн-16 19:30 
Вы, возможно, удивитесь, но все это продолжает напоминать все тот же Пых: какие-то элементы языка имеют свою логику, но она не состыкована со всем остальным языком...

"Утверждён стандарт ECMAScript 7 (2016)"
Отправлено Аноним , 17-Июн-16 16:51 
>> indexOf возвращет индекс найденного элемента иначе -1, а includes возващает булево значение.
> Все, капут!! -1 к булевому не привести!
> [1,2,3].indexOf(2) !== -1
> или
> !!~[1,2,3].indexOf(2)
> стало
> [1,2,3].includes(2)

По вашей логике ненужно было вводить классы - прототипы все наше, ненужны "обещания", генераторы - юзаем колбеки везде и всюду. Изначально разные предназначения у этих функций.



"Утверждён стандарт ECMAScript 7 (2016)"
Отправлено angra , 17-Июн-16 19:25 
indexOf вынужден выдавать порядковый номер. includes от этого ограничения свободен, а значит может быть реализован совсем другим способами, дающим для больших массивов различие в скорости нахождения на порядки.

"Утверждён стандарт ECMAScript 7 (2016)"
Отправлено Аноним , 17-Июн-16 11:59 
И в яваскрипте до сих пор нет ОДНОГО метода для очищения всего массива без мороки с количеством элементов?

"Утверждён стандарт ECMAScript 7 (2016)"
Отправлено dgdsgfsadfgsdfgsdfg , 17-Июн-16 12:02 
delete

"Утверждён стандарт ECMAScript 7 (2016)"
Отправлено Анонимомус , 17-Июн-16 12:06 
> И в яваскрипте до сих пор нет ОДНОГО метода для очищения всего
> массива без мороки с количеством элементов?

Какой мароки? arr.length = 0;


"Утверждён стандарт ECMAScript 7 (2016)"
Отправлено Аноним , 17-Июн-16 12:08 
var a = [1,2,3,4,5];
a.length = 0;
console.log(a); // --> [];

"Утверждён стандарт ECMAScript 7 (2016)"
Отправлено анон , 17-Июн-16 14:56 
> клоун: Сразу видно уровень специалистов. Слово "метод" вам просто так написали?
> a = [1,2,3]

[1, 2, 3]
> Array.prototype.emptyMe = function(){ this.length = 0;}
> a.emptyMe()
> a

[]

пользуйся и не плач


"Утверждён стандарт ECMAScript 7 (2016)"
Отправлено Аноним , 18-Июн-16 00:40 
Если клоун - грустный, то пускай плачет. Цирк должен продолжаться.

"Утверждён стандарт ECMAScript 7 (2016)"
Отправлено Аноним , 17-Июн-16 12:01 
Главное чтобы современные браузеры поспевали за стандартами...

"Утверждён стандарт ECMAScript 7 (2016)"
Отправлено Аноним , 17-Июн-16 12:51 
на удивление с этим всё неплохо, глядишь через годик можно будет уже и о babel забыть

"Утверждён стандарт ECMAScript 7 (2016)"
Отправлено Аноним , 17-Июн-16 15:44 
От бабеля вряд ли можно будет отказаться, но пресет es2015 можно уже отключать

"Утверждён стандарт ECMAScript 7 (2016)"
Отправлено Аноним , 17-Июн-16 12:52 
Оказывается есть не только Генеральная Ассамблея ООН, но еще и про JavaScript. Круто, че

"Утверждён стандарт ECMAScript 7 (2016)"
Отправлено _ , 17-Июн-16 19:03 
Бронзовеют на глазах ...
Интересно а Уполномоченный Генеральный Секретарь и Почётный Президент JavaScript тоже есть\будет? :)

"Утверждён стандарт ECMAScript 7 (2016)"
Отправлено Аноним , 17-Июн-16 14:31 
Оператор возведения в степень сейчас нужен как никогда.

"Утверждён стандарт ECMAScript 7 (2016)"
Отправлено Аноним , 17-Июн-16 18:30 
> Методы String.prototype.padStart() и String.prototype.padEnd() для доведения строки до заданного размера

Это же что же, left-pad.io теперь не нужен?


"Утверждён стандарт ECMAScript 7 (2016)"
Отправлено Аноним , 17-Июн-16 19:46 
Следующий стандарт ES: однострочник на питоне добавлено Array.prototype.123 и Array.prototype.helloworld

"Утверждён стандарт ECMAScript 7 (2016)"
Отправлено Аноним , 17-Июн-16 20:22 
Надо было значащие пробелы ввести. Было бы весело.

"Утверждён стандарт ECMAScript 7 (2016)"
Отправлено Аноним , 17-Июн-16 20:35 
Чего там с байткодом JavaScript когда уже бинарный JS  в браузеры можно будет компилить и предоставлять?

"Утверждён стандарт ECMAScript 7 (2016)"
Отправлено Crazy Alex , 18-Июн-16 01:46 
Никогда. Почти что есть WebAssembly - но это не джаваскрипт.

"Утверждён стандарт ECMAScript 7 (2016)"
Отправлено анон , 18-Июн-16 09:27 
скорее всего никогда. для этого придется ввести типы, а на это врядли пойдут.

"Утверждён стандарт ECMAScript 7 (2016)"
Отправлено Аноним , 18-Июн-16 10:49 
Из чего возникает необходимость обязательного введения типов для компиляции в байткод?

"Утверждён стандарт ECMAScript 7 (2016)"
Отправлено angra , 18-Июн-16 20:59 
Скажу страшное, типы не являются необходимостью даже для компиляции в нативный код. Но дурачки выучили, что компилируемые языки это круто, в известных им компилируемых языках есть типы, значит без типов вообще никак. Такая вот "логика". А что такое байткод они скорее всего вообще не знают.
Можно даже поиздеваться над ламерами и сообщить им, что javascript вообще-то относится к типизированным языкам.

"Утверждён стандарт ECMAScript 7 (2016)"
Отправлено Ilya Indigo , 17-Июн-16 22:13 
> "ECMA-262 7th edition"

Прямо намёк Дэвиду Флэнагану, на то, что пора обновлять книгу. :-)


"Утверждён стандарт ECMAScript 7 (2016)"
Отправлено Аноним , 18-Июн-16 10:51 
Да, обновлять. Причем ежегодно.

"Утверждён стандарт ECMAScript 7 (2016)"
Отправлено Ilya Indigo , 18-Июн-16 12:37 
> Да, обновлять. Причем ежегодно.

Ну не каждый год, но хотя бы раз в 5 лет.
6-ое издание на русском вышло аж в 2012 году, на английском, скорее всего в 2011.
Пора уже.


"Утверждён стандарт ECMAScript 7 (2016)"
Отправлено qwerty_qwerty , 20-Июн-16 10:57 
Вот честно, ну не тем народ занимается.

Делают какую то хрень, была же нормальная идея с worker, забросили.
Или вот бинарные данные, прием, передача, сериализация в/из объект, начали что то, появились массивы, ура здорово ну шагните дальше, опять запросили.
Sqllite в веб, ура !! наконец то можно нормально сортировать и искать данные, ну нет все засрали колбеками, а все нормальное не реализовано.
И так все.
Как дети, у них тоже так, идея, коек как реализовали, и все уже не интересно.


"Утверждён стандарт ECMAScript 7 (2016)"
Отправлено Аноним , 20-Июн-16 17:34 
в последнем хроме итерирование по массиву в 8 раз медленней чем выборка по индексу - это какой то позор