The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



"Утверждён стандарт ECMAScript 8 (2017) "
Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Изначальное сообщение [ Отслеживать ]

"Утверждён стандарт ECMAScript 8 (2017) "  –1 +/
Сообщение от opennews (??) on 12-Июл-17, 11:20 
На собрании Генеральной Ассамблеи ECMA (http://www.ecma-international.org/) официально утверждён (https://www.ecma-international.org/news/index.html#Docs113thGA) стандарт ECMAScript 2017 (http://www.ecma-international.org/ecma-262/8.0/index.html) (ECMAScript 8 или "ECMA-262 8th edition"), определяющий базовые функциональные возможности JavaScript. ECMAScript 8 был подготовлен в соответствии с представленным (https://www.opennet.ru/opennews/art.shtml?num=44355) в прошлом году непрерывным процессом формирования стандартов ECMAScript, которые теперь выпускаются ежегодно и развиваются в рамках непрерывно обновляемого варианта спецификации ECMAScript Next (http://kangax.github.io/compat-table/esnext/).


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


Основные новшества (https://developer.mozilla.org/en-US/docs/Web/JavaScript/New_...):


-  Добавлены методы Object.values() и Object.entries() (https://github.com/tc39/proposal-object-values-entries), который дополняют уже стандартизированный метод Object.keys  и позволяют получить массив из значений или связок ключ/значение для хранящихся в объекте перечисляемых данных (позволяет раскрыть содержимое ассоциативного массива без перебора в "for in");

-  Добавлены  методы String.padStart() и String.padEnd() (https://github.com/tc39/proposal-string-pad-start-end), позволяющие организовать вывод строк с заполнением, например, выровнять консольный вывод или отображать числа с сохранением фиксированного размера  путём добавления повторяющегося шаблона заполнения в начало или конец строки. Например, 'abc'.padEnd(10, "foo") выдаст "abcfoofoof", а 'abc'.padEnd(6,"123465") выдаст "abc123";

-  Добавлен  метод Object.getOwnPropertyDescriptors() (https://github.com/ljharb/proposal-object-getownpropertydesc...), который возвращает все описания свойств, определённых непосредственно в объекте и не наследованных из других объектов (например, позволяет узнать установлены ли свойства value, set, get, writable, enumerable и т.п.);

-  Включена (https://github.com/tc39/ecmascript-asyncawait) поддержка деклараций функций async (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Refe...) ("async function"),  возвращающих объект AsyncFunction, а также оператора await (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Refe...), которые позволяют упростить написание кода, выполняемого в асинхронном режиме, не блокируя основной поток команд. Конструкции с async/await значительно проще для восприятия и более читаемы, по сравнению с аналогичными конструкциями на основе механизма Promise;
-  Разрешено (https://github.com/tc39/proposal-trailing-function-commas) оставлять запятые после последнего элемента в массивах и объектах (например, "var arr = [1, 2, 3,];"). В массивах также можно оставлять незаполненные элементы (например, "var arr = [1, 2, 3,,,];") вместо которых останутся пустые значения;

-  Добавлен (https://github.com/tc39/ecmascript_sharedmem)  тип SharedArrayBuffer (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Refe...), позволяющий создавать массивы в разделяемой памяти. Для обеспечения возможности писать и читать данные одновременно из нескольких потоков предложен глобальный объект Atomics (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Refe...), который позволяет  организовать выполнение атомарных операций с данными в разделяемой памяти, включая средства синхронизации блокировок примитивов.

URL: https://hackernoon.com/es8-was-released-and-here-are-its-mai...
Новость: https://www.opennet.ru/opennews/art.shtml?num=46839

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "Утверждён стандарт ECMAScript 8 (2017) "  +8 +/
Сообщение от max (??) on 12-Июл-17, 11:20 
String.padStart() и String.padEnd()... джва года ждал, спасибо
годнота
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

8. "Утверждён стандарт ECMAScript 8 (2017) "  –1 +/
Сообщение от Andrey Mitrofanov on 12-Июл-17, 12:25 
> String.padStart() и String.padEnd()... джва года ждал, спасибо
> годнота

https://duckduckgo.com/?q=%22%D0%B2%D1&#...

Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

15. "Утверждён стандарт ECMAScript 8 (2017) "  +2 +/
Сообщение от Аноним (??) on 12-Июл-17, 13:37 
Ура! Теперь джва года ждем sprintf.
Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

18. "Утверждён стандарт ECMAScript 8 (2017) "  +/
Сообщение от Аноним (??) on 12-Июл-17, 13:43 
> Ура! Теперь джва года ждем sprintf.

String.padLeft() же.


Ответить | Правка | ^ к родителю #15 | Наверх | Cообщить модератору

74. "Утверждён стандарт ECMAScript 8 (2017) "  +/
Сообщение от Аноним (??) on 13-Июл-17, 13:07 
Вместо sprintf

`this an string and this an ${val}` - возвращает обычную строку.

Ответить | Правка | ^ к родителю #15 | Наверх | Cообщить модератору

22. "Утверждён стандарт ECMAScript 8 (2017) "  +/
Сообщение от Аноним (??) on 12-Июл-17, 13:58 
У тебя настолько кривые руки, что понадобилось выравнивание?
Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

66. "Утверждён стандарт ECMAScript 8 (2017) "  –1 +/
Сообщение от rpm on 13-Июл-17, 02:45 
> У тебя настолько кривые руки, что понадобилось выравнивание?

Какой мудрый коммент. Фсе ф шоке.

Ответить | Правка | ^ к родителю #22 | Наверх | Cообщить модератору

72. "Утверждён стандарт ECMAScript 8 (2017) "  –2 +/
Сообщение от MPEG LA (ok) on 13-Июл-17, 10:53 
man left-pad@npm
Ответить | Правка | ^ к родителю #22 | Наверх | Cообщить модератору

93. "Утверждён стандарт ECMAScript 8 (2017) "  –1 +/
Сообщение от Олег Торбасов email on 16-Июл-17, 17:50 
pad’ы легко прикручивались полифиллом. А вот async/await, будучи только синтаксическим сахаром над промисами, проясняет код и облегчает жизнь очень сильно. Правда, теперь я наблюдаю, как они расползаются по моим скриптам и подозреваю, что в конце концов все методы станут асинхронными (кроме конструкторов, с которыми так делать нельзя).
Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

2. "Утверждён стандарт ECMAScript 8 (2017) "  +/
Сообщение от Аноним (??) on 12-Июл-17, 11:27 
ну норм
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

3. "Утверждён стандарт ECMAScript 8 (2017) "  +/
Сообщение от GG (ok) on 12-Июл-17, 11:41 
Ура, товарищи!
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

4. "Утверждён стандарт ECMAScript 8 (2017) "  +1 +/
Сообщение от Аноним (??) on 12-Июл-17, 12:06 
И что неужели никто не скажет какой javascript плохой и все вокруг идиоты?
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

5. "Утверждён стандарт ECMAScript 8 (2017) "  +20 +/
Сообщение от A.Stahl (ok) on 12-Июл-17, 12:09 
>неужели никто не скажет какой javascript плохой

А то что небо голубое тебе не сообщить? Или что вода мокрая?

Ответить | Правка | ^ к родителю #4 | Наверх | Cообщить модератору

6. "Утверждён стандарт ECMAScript 8 (2017) "  +14 +/
Сообщение от антончик on 12-Июл-17, 12:16 
Середина лета, Капитан Очевидность отдыхает на пляже, давайте не будем дёргать его по таким пустякам.
Ответить | Правка | ^ к родителю #4 | Наверх | Cообщить модератору

7. "Утверждён стандарт ECMAScript 8 (2017) "  –3 +/
Сообщение от Аноним (??) on 12-Июл-17, 12:18 
хелоуворлдщики на хаскеле любят поспать ввиду бессонных ночей за дотаном и КСочкой
Ответить | Правка | ^ к родителю #4 | Наверх | Cообщить модератору

9. "Утверждён стандарт ECMAScript 8 (2017) "  +2 +/
Сообщение от НяшМяш (ok) on 12-Июл-17, 12:50 
Обезьянки все такие мазохисты? Если в теме не унижают их любимый язык, то день не задался?  Обычно программисты пьют кофе для заряда, а обезьянке нужно прочесть пару десятков оскорбительных комментов про яваскрипт, чтобы она могла продолжить овнокодить?
Ответить | Правка | ^ к родителю #4 | Наверх | Cообщить модератору

10. "Утверждён стандарт ECMAScript 8 (2017) "  –2 +/
Сообщение от Аноним (??) on 12-Июл-17, 12:58 
хелоуворлд, чем тебе js не угодил?
Ответить | Правка | ^ к родителю #9 | Наверх | Cообщить модератору

17. "Утверждён стандарт ECMAScript 8 (2017) "  +/
Сообщение от Аноним (??) on 12-Июл-17, 13:41 
> хелоуворлд, чем тебе js не угодил?

А ссылочку на ядро, окружение или браузер на JS можно? А еще, состоятельность ЯП проверяется обычно компилятором или интерпретатором на нем самом - и тут вас, Бандерлогов, запросто обстваляют те же почитатели Каа.
Но вы и дальше продолжайте дружно повторять, что вы велики и достойны восхищения :)


Ответить | Правка | ^ к родителю #10 | Наверх | Cообщить модератору

33. "Утверждён стандарт ECMAScript 8 (2017) "  –1 +/
Сообщение от pripolz on 12-Июл-17, 15:19 
> А ссылочку на ядро, окружение или браузер на JS можно?

Как насчёт виртуальной машины на JS?
https://www.youtube.com/watch?v=2gu6bdKDjoE

Ответить | Правка | ^ к родителю #17 | Наверх | Cообщить модератору

35. "Утверждён стандарт ECMAScript 8 (2017) "  +/
Сообщение от Аноним (??) on 12-Июл-17, 15:41 
> Как насчёт виртуальной машины на JS?
> https://www.youtube.com/watch?v=2gu6bdKDjoE

Как насчет того, что мне и оригинал знаком, не только пересьемка на видосик? Поэтому я в курсе лютейших тормозов этой ВМки.
Мы, если что, не о пет-проектах и PoCах :)


Ответить | Правка | ^ к родителю #33 | Наверх | Cообщить модератору

52. "Утверждён стандарт ECMAScript 8 (2017) "  +/
Сообщение от Отражение луны (ok) on 12-Июл-17, 20:57 
Так вот как крутость языка измеряется. А я то думал эффективностью и простотой построения сложных конструкций.
Мб кинете ссылочку на удобную реализацию асинхрона на си?
Ответить | Правка | ^ к родителю #17 | Наверх | Cообщить модератору

54. "Утверждён стандарт ECMAScript 8 (2017) "  +1 +/
Сообщение от Аноним (??) on 12-Июл-17, 21:06 
man fork
Ответить | Правка | ^ к родителю #52 | Наверх | Cообщить модератору

55. "Утверждён стандарт ECMAScript 8 (2017) "  +1 +/
Сообщение от Аноним (??) on 12-Июл-17, 21:14 
> Так вот как крутость языка измеряется. А я то думал эффективностью и
> простотой построения сложных конструкций.

Крутость языка измеряется не хелловорлдами (тут вы проигрываете тем же хацкелям или лиспам и идете максимум наравне с питонам) или обещаниями пиарщиков , а тем, что на нем смогли такого нужного и большого написать.
Я правда не подумал, что для ЖопоСкритников ядро, браузер или хотя бы более-менее быстрый интерпретатор суть простые и тривиальные конструкции :(


Ответить | Правка | ^ к родителю #52 | Наверх | Cообщить модератору

59. "Утверждён стандарт ECMAScript 8 (2017) "  –3 +/
Сообщение от Аноним (??) on 12-Июл-17, 23:22 
Хелоуворлд не читатель?
>простотой построения сложных конструкций
Ответить | Правка | ^ к родителю #55 | Наверх | Cообщить модератору

63. "Утверждён стандарт ECMAScript 8 (2017) "  +1 +/
Сообщение от Аноним (??) on 13-Июл-17, 00:53 
> Хелоуворлд не читатель?
>>простотой построения сложных конструкций

Что ты не осилил в
>> простотой построения сложных конструкций.
> Крутость языка измеряется не хелловорлдами (тут вы проигрываете тем же хацкелям или лиспам и идете максимум наравне с питонам)
> а тем, что на нем смогли такого нужного и большого написать.

?


Ответить | Правка | ^ к родителю #59 | Наверх | Cообщить модератору

64. "Утверждён стандарт ECMAScript 8 (2017) "  +/
Сообщение от Аноним (??) on 13-Июл-17, 00:57 
> Хелоуворлд не читатель?
>>простотой построения сложных конструкций

Кстати, примеры простоты и эффективности построения сложных конструкций будут? Чтоб мы могли посме^W проникнуться.


Ответить | Правка | ^ к родителю #59 | Наверх | Cообщить модератору

69. "Утверждён стандарт ECMAScript 8 (2017) "  +/
Сообщение от Аноним (??) on 13-Июл-17, 08:47 
я по пятницам не подаю
Ответить | Правка | ^ к родителю #64 | Наверх | Cообщить модератору

75. "Утверждён стандарт ECMAScript 8 (2017) "  +1 +/
Сообщение от Аноним (??) on 13-Июл-17, 13:23 
> я по пятницам не подаю

Что вы там по пятницам делаете, нас как-то не очень интригует.
А вот почему вы по средам и четвергам любите покудахтать «ЖС фсех рвет! Да, это суперский ЯП! Мы все так говорим, а значит это правда!» уже интереснее.

Ответить | Правка | ^ к родителю #69 | Наверх | Cообщить модератору

77. "Утверждён стандарт ECMAScript 8 (2017) "  –1 +/
Сообщение от ygaergafhedg on 13-Июл-17, 15:55 
мое мнение о js за комментом 3.12
У вас, хеловорлдов, паранойя. Кудахтаете как раз больше всех вы.
Ответить | Правка | ^ к родителю #75 | Наверх | Cообщить модератору

78. "Утверждён стандарт ECMAScript 8 (2017) "  +/
Сообщение от Аноним (??) on 13-Июл-17, 16:18 
> мое мнение о js за комментом 3.12

А че сюда лезете? Неужто тут банановым сиропом намазанно? Мы сдесь не о красоте, а о "крютости".
Не можете привести пример большого приложения (или простоту конструкции того, что у вас там выступает в качестве меры мощности, см. ветку обсуждения) - значит кудахчете без толку.

> У вас, хеловорлдов, паранойя. Кудахтаете как раз больше всех вы.
> Яваскрипт ужасный язык. Но знают об этом только те, кто на нем пишет.
> Ну и хелоуворлдщики на бейсике, конечно же.

Эпично. И правда, такая стройная картина мира: кроме JS есть только бейсик, а все, кто не разрабатывает на JS - helloworld-щики!


Ответить | Правка | ^ к родителю #77 | Наверх | Cообщить модератору

80. "Утверждён стандарт ECMAScript 8 (2017) "  –1 +/
Сообщение от Аноним (??) on 13-Июл-17, 18:24 
>А че сюда лезете?

Охренеть.
>Не можете привести пример большого приложения

Хеловорлд, js - внезапно, скриптовый язык, у него своя ниша, какое большое приложение ты хочешь на скриптовом языке?
не говорю, что все, кто не разрабатывает на js - хеловорлдщики. Имею дело с разными языками. В качестве хобби - вообще OCaml.
Хеловорлдщики - они вроде таких, как ты - "не знаю, но осуждаю".

Ответить | Правка | ^ к родителю #78 | Наверх | Cообщить модератору

84. "Утверждён стандарт ECMAScript 8 (2017) "  +/
Сообщение от Аноним (??) on 13-Июл-17, 19:01 

> Охренеть.

Что, сложно удержать в голове, что разные ветки дискуссий действительно РАЗНЫЕ и не у всех есть либастрал, чтобы угадать, кто и что где-то там отписал?
> Хеловорлд, js - внезапно, скриптовый язык, у него своя ниша, какое большое приложение ты хочешь на скриптовом языке?

Внезапно, ты или тебе подобные дали другое определение - что-то там с построением сложностей. Но и тут примеров пока не было, только самовосхваления и битье себя в грудь бананом "мы все так говорим, а значит это правда!"

> Хеловорлдщики - они вроде таких, как ты - "не знаю, но осуждаю".

Только вот вряд ли мы знакомы, иначе бы ты знал, что был в моей жизни и такой темный и бесславный период, когда приходилось ковыряться в этом ЖС-ном ***ме.
А значит, ты меня не знаешь, но … самокритично, в общем.


Ответить | Правка | ^ к родителю #80 | Наверх | Cообщить модератору

86. "Утверждён стандарт ECMAScript 8 (2017) "  +/
Сообщение от Аноним (??) on 13-Июл-17, 19:46 
>приходилось ковыряться в этом ЖС-ном ***ме

так и скажи - не осилил, и не выноси мозг своей околесицей.

Ответить | Правка | ^ к родителю #84 | Наверх | Cообщить модератору

89. "Утверждён стандарт ECMAScript 8 (2017) "  +1 +/
Сообщение от Аноним (??) on 13-Июл-17, 20:22 
>>приходилось ковыряться в этом ЖС-ном ***ме
> так и скажи - не осилил,

Ну ты прям гигант мысли и логики!
> и не выноси мозг своей околесицей.

Да не верещи, не отбираю я твой банан. Зачем он мне?

Ответить | Правка | ^ к родителю #86 | Наверх | Cообщить модератору

91. "Утверждён стандарт ECMAScript 8 (2017) "  +1 +/
Сообщение от Аноним (??) on 14-Июл-17, 18:07 
А я не буду отбирать твой кассовый аппарат. На этом и закончим. Мир.
Ответить | Правка | ^ к родителю #89 | Наверх | Cообщить модератору

11. "Утверждён стандарт ECMAScript 8 (2017) "  –5 +/
Сообщение от Аноним (??) on 12-Июл-17, 13:06 
Яваскрипт - прекраснейший язык. И красота его не только в нововведениях типа:

> Разрешено оставлять запятые после последнего элемента в массивах и объектах (например, "var arr = [1, 2, 3,];"). В массивах также можно оставлять незаполненные элементы (например, "var arr = [1, 2, 3,,,];") вместо которых останутся пустые значения;

Ответить | Правка | ^ к родителю #4 | Наверх | Cообщить модератору

12. "Утверждён стандарт ECMAScript 8 (2017) "  +3 +/
Сообщение от Аноним (??) on 12-Июл-17, 13:08 
Яваскрипт ужасный язык. Но знают об этом только те, кто на нем пишет. Ну и хелоуворлдщики на бейсике, конечно же.
Ответить | Правка | ^ к родителю #11 | Наверх | Cообщить модератору

20. "Утверждён стандарт ECMAScript 8 (2017) "  –1 +/
Сообщение от Я (??) on 12-Июл-17, 13:45 
я хочу объявить массив из 4-х элементов, последний из которых пустой и напишу:
var arr = [1, 2, 3,];

я хочу объявить массив из 3-х элементов, но лень удалять последнюю запятую, напишу:
var arr = [1, 2, 3,];

и в чём тут красота? бред полнейший.

Ответить | Правка | ^ к родителю #11 | Наверх | Cообщить модератору

24. "Утверждён стандарт ECMAScript 8 (2017) "  +1 +/
Сообщение от анонимус (??) on 12-Июл-17, 14:20 
я хочу объявить массив из 4-х элементов, последний из которых пустой и напишу:
var arr = [1, 2, 3,,];
я хочу объявить массив из 3-х элементов, но лень удалять последнюю запятую, напишу:
var arr = [1, 2, 3,];

поправил, не благодари helloword-anykey.

Ответить | Правка | ^ к родителю #20 | Наверх | Cообщить модератору

39. "Утверждён стандарт ECMAScript 8 (2017) "  –1 +/
Сообщение от _ (??) on 12-Июл-17, 16:42 
Ну не красиво же!
А как известно: "Некрасивые самолёты и летают плохо!" (С) приписывают Туполеву.
Ответить | Правка | ^ к родителю #24 | Наверх | Cообщить модератору

25. "Утверждён стандарт ECMAScript 8 (2017) "  +/
Сообщение от Аноним (??) on 12-Июл-17, 14:20 
*показывает листок с от руки написанным "Сарказм"*
Ответить | Правка | ^ к родителю #20 | Наверх | Cообщить модератору

28. "Утверждён стандарт ECMAScript 8 (2017) "  +1 +/
Сообщение от rshadow (ok) on 12-Июл-17, 14:36 
Что значит пустой. Такое разве есть в JS?

var arr = [1, 2, 3, undefined];
var arr = [1, 2, 3, null];
var arr = [1, 2, 3, ''];

Ответить | Правка | ^ к родителю #20 | Наверх | Cообщить модератору

48. "Утверждён стандарт ECMAScript 8 (2017) "  +/
Сообщение от Аноним (??) on 12-Июл-17, 18:58 
Открой консоль и проверь.
Ответить | Правка | ^ к родителю #28 | Наверх | Cообщить модератору

60. "Утверждён стандарт ECMAScript 8 (2017) "  +/
Сообщение от Аноним (??) on 12-Июл-17, 23:27 
У него будет не пустой, а разрежённый. Это не тоже самое, что undefined в ячейке.
Ответить | Правка | ^ к родителю #28 | Наверх | Cообщить модератору

67. "Утверждён стандарт ECMAScript 8 (2017) "  –1 +/
Сообщение от rpm on 13-Июл-17, 02:49 
> Что значит пустой. Такое разве есть в JS?
> var arr = [1, 2, 3, undefined];
> var arr = [1, 2, 3, null];
> var arr = [1, 2, 3, ''];

Массивы в жс фальшивые. На самом деле это хеши.

Ответить | Правка | ^ к родителю #28 | Наверх | Cообщить модератору

37. "Утверждён стандарт ECMAScript 8 (2017) "  +1 +/
Сообщение от Аноним Анонимович Анонимов on 12-Июл-17, 16:33 
Попробую объяснить. Создание, заполнение массива на лету и инициализация массива это разные вещи. Одно дело, когда вы знаете, что у вас в массиве и поэтому инициализируете его с заданным количеством элементов, другое дело когда формируете массив на лету.

Вам ничто не мешает написать:

  var arr = new Array(5) //создаст массив из 5 пустых элементов

для инициализации массива этого достаточно. Оператор [] актуален, когда, например, в цикле формируется динамическй массив.


var temp_arr = [];

for ( var i = 0; i < Math.floor( Math.random() * 1000 ); i++)
{
  temp_arr.push(i);
}

Разница между new Array() и [] существенна только в контексте использования. Ну и инициализация массива с заданным количество элементов невозможна в [].

Ответить | Правка | ^ к родителю #20 | Наверх | Cообщить модератору

62. "Утверждён стандарт ECMAScript 8 (2017) "  –1 +/
Сообщение от Аноним (??) on 12-Июл-17, 23:28 
>создаст массив из 5 пустых элементов

Создаст разряженный массив (а не пустой). Учите уже матчасть. Тот же Array.foreach не будет его перебирать.

Ответить | Правка | ^ к родителю #37 | Наверх | Cообщить модератору

70. "Утверждён стандарт ECMAScript 8 (2017) "  +1 +/
Сообщение от Аноним Анонимович Анонимов on 13-Июл-17, 08:51 
Во-первых, я-то матчасть, в отличии от вас, знаю на должном уровне. Если бы это был разряжённый массив, то я так и написал бы.

Во-вторых, читайте уже стандарт ECMA Script.

https://learn.javascript.ru/array#new-array-2
https://developer.mozilla.org/ru/docs/Web/JavaScript/Referen...
http://www.ecma-international.org/ecma-262/8.0/index.html#se...
http://es5.javascript.ru/x15.4.html#x15.4.2

Ответить | Правка | ^ к родителю #62 | Наверх | Cообщить модератору

85. "Утверждён стандарт ECMAScript 8 (2017) "  +/
Сообщение от Аноним (??) on 13-Июл-17, 19:33 
new Array(3).forEach(function (a) { console.log(a); });
Что мы увидим в консоле? Ничего. Массив то разряженный.
----------------------------------------------------------------------
new Array(3).fill(1).forEach(function (a) { console.log(a); });
Что мы увидим в консоле? Три вывода в консоль числа 1.
----------------------------------------------------------------------
[,,].forEach(function (a) { console.log(a); });
Что мы увидим в консоле? Ничего. Массив то разряженный.
----------------------------------------------------------------------
[,,].fill(2).forEach(function (a) { console.log(a); });
Что мы увидим в консоле? Три вывода в консоль числа 2.
----------------------------------------------------------------------

В общем, иди учить матчасть, хотя по ссылка, что ты сам же дал. Там все есть.

Ответить | Правка | ^ к родителю #70 | Наверх | Cообщить модератору

90. "Утверждён стандарт ECMAScript 8 (2017) "  –1 +/
Сообщение от Аноним Анонимович Анонимов on 14-Июл-17, 09:20 
Прежде чем мне тыкать, сходи сам для начала хотя бы на википедию:

https://en.wikipedia.org/wiki/Sparse_matrix

>In numerical analysis and computer science, a sparse matrix or sparse array is a matrix in which most of the elements are zero. By contrast, if most of the elements are nonzero, then the matrix is considered dense.
>Разрежённый масси́в — абстрактное представление обычного массива, в котором данные представлены не непрерывно, а фрагментарно; большинство элементов его принимают одно и то же значение (значение по умолчанию, обычно 0 или null).

**************************************

Sparse array в JS это массив с holes

var sparse = [,,3] //sparse array
var dense = [undefined, undefined, 3] //dense array

sparse === dense //false

0 in sparse //false

sparse[0] === 0 //false

0 in dense //true

**************************************

var sparse = [];
var dense = new Array();

sparse === dense //false

Ответить | Правка | ^ к родителю #85 | Наверх | Cообщить модератору

94. "Утверждён стандарт ECMAScript 8 (2017) "  +/
Сообщение от Этонея on 17-Июл-17, 12:36 
foreach их не перебирает, но при явном обращении
console.log( new Array(3)[0])
будет
undefined

В общем-то это можно отнести к граблям JS. Zpsr dct ,jkmit cnfyjdbncz 'pjnthbtcrbv/

Ответить | Правка | ^ к родителю #85 | Наверх | Cообщить модератору

27. "Утверждён стандарт ECMAScript 8 (2017) "  –3 +/
Сообщение от Crazy Alex (ok) on 12-Июл-17, 14:29 
Как раз отличный пример обратного. Приняли бы одно ("запятая всегда означает присутствующий в массиве элемент со значением null") или второе ("дублирующиеся запятые игнорируются") - было бы ок. А так - какова будет длина массива "var arr = [1, 2, 3,];" и как это соотнесётся с длиной массива "var arr = [1, 2, 3,,];" ? Лично я ни одного констистентного решения не вижу.
Ответить | Правка | ^ к родителю #11 | Наверх | Cообщить модератору

57. "Утверждён стандарт ECMAScript 8 (2017) "  +4 +/
Сообщение от Аноним (??) on 12-Июл-17, 21:25 
http://es5.javascript.ru/x11.html#x11.1.4

Элементы массива могут быть пропущены в начале, в середине или в конце списка элементов. Если перед запятой в списке элементов отсутствует AssignmentExpression Выражение присваивания – т. е., запятая находится сразу в начале списка или непосредственно перед другой запятой – то пропущенный элемент массива увеличивает длину Array и индекс последующих элементов. Определение пропущенных элементов массива не производится. Элемент, пропущенный в конце массива, не увеличивает длину объекта Array.

Ответить | Правка | ^ к родителю #27 | Наверх | Cообщить модератору

13. "Утверждён стандарт ECMAScript 8 (2017) "  –6 +/
Сообщение от anon2000 on 12-Июл-17, 13:10 
Сам JS - это наверное самое адекватное из всего стека веб-технологий.
Ответить | Правка | ^ к родителю #4 | Наверх | Cообщить модератору

14. "Утверждён стандарт ECMAScript 8 (2017) "  +5 +/
Сообщение от Crazy Alex (ok) on 12-Июл-17, 13:35 
Хм, скорее "наименее неадекватное". Учитывая, что весь стек совершенно чудовищен - не самое большое достижение.
Ответить | Правка | ^ к родителю #13 | Наверх | Cообщить модератору

21. "Утверждён стандарт ECMAScript 8 (2017) "  –1 +/
Сообщение от Аноним (??) on 12-Июл-17, 13:53 
Получается веб не адекватен, а JS да...
Адекватность предполагает соответствие чему-либо, поэтому "самых адекватных" должно быть как минимум два. Правда адекватны они будут только друг другу...
Ответить | Правка | ^ к родителю #13 | Наверх | Cообщить модератору

26. "Утверждён стандарт ECMAScript 8 (2017) "  +/
Сообщение от Crazy Alex (ok) on 12-Июл-17, 14:24 
Для данного случая - имеется в виду адекватность задачам, я полагаю. Сейчас веб - это в основном платформа для запуска приложений (от простых, которые мы по старой памяти обзываем страничками до всяких наворотов вроде графических редакторов и групвари). Этой задаче там действительно условно адекватен JS (тем менее адекватен, чем сложнее приложение), с остальным - всё хуже, дикая смесь легаси и попыток это легаси подправить.
Ответить | Правка | ^ к родителю #21 | Наверх | Cообщить модератору

34. "Утверждён стандарт ECMAScript 8 (2017) "  +1 +/
Сообщение от Аноним (??) on 12-Июл-17, 15:27 
Это понятно, тут не поспоришь. Проблема в подходе. Для веб, где JS условно является условно стандартообразующим монополистом, он не может быт не адекватным в принципе. Отдельные решения, отдельные элементы языка - это да можно дискутировать. Это сродни обсуждению адекватен ли ассемблер какой-то машины или нет. Есть машина, есть её оп.коды и есть ассемблер. Можно дискутировать о мнемоническом представлении какой-то команды, но не о ассемблере как таковом. Соответственно текущий JS применительно к веб не может быть хорошим, плохим или неадекватным.
Проблема возникает, когда кто-то называет JS хорошим, потому что он адекватен для веб. Он не хороший вообще, он просто соответствует текущему подходу в веб. Будет он адекватен для чего-то еще - это вопрос. Хороший ли это язык для систем, где есть возможность выбора - это еще больший вопрос.
Ответить | Правка | ^ к родителю #26 | Наверх | Cообщить модератору

38. "Утверждён стандарт ECMAScript 8 (2017) "  –1 +/
Сообщение от anon2000 on 12-Июл-17, 16:42 
>Он не хороший вообще, он просто соответствует текущему подходу в веб.

Проблема в том, что он не соответствует текущему подходу в веб. Да и вообще весь веб-стек не соответствует текущему подходу в веб.

Ответить | Правка | ^ к родителю #34 | Наверх | Cообщить модератору

16. "Утверждён стандарт ECMAScript 8 (2017) "  –2 +/
Сообщение от Аноним (??) on 12-Июл-17, 13:39 
Верно. Все давно пришут на ClojureScript или PureScript.
Ответить | Правка | ^ к родителю #4 | Наверх | Cообщить модератору

30. "Утверждён стандарт ECMAScript 8 (2017) "  +7 +/
Сообщение от Zoolander on 12-Июл-17, 14:43 
Все - это ты и два твоих воображаемых друга? Удачи дальше так думать.
Ответить | Правка | ^ к родителю #16 | Наверх | Cообщить модератору

23. "Утверждён стандарт ECMAScript 8 (2017) "  +/
Сообщение от username (??) on 12-Июл-17, 14:09 
ситуация отражает то насколько всем пофиг
Ответить | Правка | ^ к родителю #4 | Наверх | Cообщить модератору

19. "Утверждён стандарт ECMAScript 8 (2017) "  +1 +/
Сообщение от Аноним (??) on 12-Июл-17, 13:45 
> Разрешено оставлять запятые после последнего элемента в массивах и объектах (например, "var arr = [1, 2, 3,];"). В массивах также можно оставлять незаполненные элементы (например, "var arr = [1, 2, 3,,,];") вместо которых останутся пустые значения;

Ссылка вообще про про запятые после аргументов функции, поправьте.

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

29. "Утверждён стандарт ECMAScript 8 (2017) "  –1 +/
Сообщение от rshadow (ok) on 12-Июл-17, 14:38 
Отлично! Лет через 5 можно будет использовать на сайте!
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

32. "Утверждён стандарт ECMAScript 8 (2017) "  –1 +/
Сообщение от avig on 12-Июл-17, 15:14 
webpack не завезли? async\await уже давно юзаю
Ответить | Правка | ^ к родителю #29 | Наверх | Cообщить модератору

41. "Утверждён стандарт ECMAScript 8 (2017) "  +1 +/
Сообщение от rshadow (ok) on 12-Июл-17, 17:01 
Да уже простые Простые форматы вымирают как мамонты. Везде компиляция: js, css, xls ... =(
Ответить | Правка | ^ к родителю #32 | Наверх | Cообщить модератору

82. "Утверждён стандарт ECMAScript 8 (2017) "  +/
Сообщение от Аноним (??) on 13-Июл-17, 18:37 
Это в уютненьких корпоративных проектах везде сборка, наверное. На аутсорсинговых просторах еще ни один проект в адекватном состоянии не пришел.

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

Так и живем. Лучше бы js родился компилируемым. Глядишь, такой х*рни бы не было. С бинарным кодом в копипасту не поиграешь.

Ответить | Правка | ^ к родителю #41 | Наверх | Cообщить модератору

31. "Утверждён стандарт ECMAScript 8 (2017) "  +1 +/
Сообщение от Аноним (??) on 12-Июл-17, 14:52 
JS начинает быть похож на Java курильщика
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

49. "Утверждён стандарт ECMAScript 8 (2017) "  –1 +/
Сообщение от Kodir (ok) on 12-Июл-17, 18:58 
JS был укуренным от рождения :) Как только сделали динамический язык и кинули туда недотёп-ойтишнегов, тут *оно* по кочкам и понеслось! Их унюханые братья из стана PHP были только рады новым членам палаты.
Ответить | Правка | ^ к родителю #31 | Наверх | Cообщить модератору

36. "Утверждён стандарт ECMAScript 8 (2017) "  –1 +/
Сообщение от Аноним (??) on 12-Июл-17, 16:14 
И зачем это нужно? Отключил у себя и доволен.
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

40. "Утверждён стандарт ECMAScript 8 (2017) "  +2 +/
Сообщение от A.Stahl (ok) on 12-Июл-17, 17:00 
Так ведь свистелки теперь не свистят, а перделки не пердят. Как так жить?
Ответить | Правка | ^ к родителю #36 | Наверх | Cообщить модератору

46. "Утверждён стандарт ECMAScript 8 (2017) "  +/
Сообщение от Аноним (??) on 12-Июл-17, 18:32 
> Так ведь свистелки теперь не свистят, а перделки не пердят. Как так жить?

Без лишних шумов и запахов.

Ответить | Правка | ^ к родителю #40 | Наверх | Cообщить модератору

50. "Утверждён стандарт ECMAScript 8 (2017) "  –3 +/
Сообщение от Kodir (ok) on 12-Июл-17, 19:00 
> Без лишних шумов и запахов.

:))) Шутки-шутками, но ведь есть реальные утырки-недоадмины-въебмастера, сайты которых вообще не работают бес крипта!! Реально за такое надо ломать ноги (оттуда же у них растут и руки).

Ответить | Правка | ^ к родителю #46 | Наверх | Cообщить модератору

51. "Утверждён стандарт ECMAScript 8 (2017) "  +/
Сообщение от avig on 12-Июл-17, 19:25 
web без скрипта!? это как!? а rich ui я тебе на чем сделаю? а разделение ui и бекенд? что обратно в 2000е? ты ебанутый?
Ответить | Правка | ^ к родителю #50 | Наверх | Cообщить модератору

92. "Утверждён стандарт ECMAScript 8 (2017) "  +2 +/
Сообщение от Аноним (??) on 14-Июл-17, 20:24 
типичная макака, даже без оскорблений высказаться не могет :)
Ответить | Правка | ^ к родителю #51 | Наверх | Cообщить модератору

44. "Утверждён стандарт ECMAScript 8 (2017) "  +/
Сообщение от Аноним84701 (ok) on 12-Июл-17, 17:54 
> И зачем это нужно? Отключил у себя и доволен.

Только у особо одаренных половину контента -- как корова языком слизала:
https://abissell.com/2014/01/16/c11s-_generic-keyword-macro-.../
Без ЖС тут не просто код "неподсвеченный" и "неинтерактивный" (хотя зачем каждый раз посетителю рендерить подсветку и прочее, если все это один раз можно сделать при загрузке контента - для меня тайна) -- его, млять, вообще нет.  

Ответить | Правка | ^ к родителю #36 | Наверх | Cообщить модератору

65. "Утверждён стандарт ECMAScript 8 (2017) "  +/
Сообщение от Аноним (??) on 13-Июл-17, 01:12 
Да это ещё вполне адекватный сайт, а вот тут:
https://tyumen.zarplata.ru/vacancy/card/132987921/Imitator_p... - даже title без js не увидишь, не то что контент хоть какой-то ))
Ответить | Правка | ^ к родителю #44 | Наверх | Cообщить модератору

42. "Утверждён стандарт ECMAScript 8 (2017) "  +/
Сообщение от defu on 12-Июл-17, 17:36 
> -  Разрешено (https://github.com/tc39/proposal-trailing-function-commas) оставлять
> запятые после последнего элемента в массивах и объектах (например, "var arr
> = [1, 2, 3,];"). В массивах также можно оставлять незаполненные элементы
> (например, "var arr = [1, 2, 3,,,];") вместо которых останутся пустые
> значения;

В общем-то переводить надо аккуратней, НО самое смешное, что народ принялся бурно обсуждать, как будто это новая фича , то, что написано было уже внедрено с ES5.
А по линку, то что новое приняли, это "Trailing commas in function parameter lists", т.е. можно ставить запятую после последнего параметра в фунцкии, аля f(a,) тоже что и f(a).

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

43. "Утверждён стандарт ECMAScript 8 (2017) "  –2 +/
Сообщение от Ilya Indigo (ok) on 12-Июл-17, 17:49 
Осталось только чтобы Флэнаган выпустил очередное издание своей книги, и, конечно же, что бы Симфол+ её перевёл и выпустил.
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

45. "Утверждён стандарт ECMAScript 8 (2017) "  +/
Сообщение от Zoolander on 12-Июл-17, 18:21 
C массивами и запятыми вопрос все же не ясен. Что за фигня вообще?

async/await - самая полезная штука из этого

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

47. "Утверждён стандарт ECMAScript 8 (2017) "  +1 +/
Сообщение от defu on 12-Июл-17, 18:57 
Так а что не ясно то, это не новая фича. Они добавили только trailing commas для параметров функции, пример: f(a,).
А в массивах и объектах уже было давно это внедрено. Одну запятую в конце списка массива или объекта можно использовать, "для облегчения" добавления новых элементов ;)
К примеру:
const a = [1,2,3,] ; a.length; // размер масива 3, тоже что и a[1,2,3]
//
const obj = { a: 'one', b: 'two', c: 'three",} ;
//
Ну и если запятых в конце несколько, то это тоже самое что создать undefined элементы.
К примеру:
const a = [1,2,3,,,] ; a.length //  размер массива будет 5, где пустые элементы образуют дыру, они неявно undefined. Но любые итераторы над массивом пропустят пустые элементы, т.е. не выведут что они undefined.


Ответить | Правка | ^ к родителю #45 | Наверх | Cообщить модератору

58. "Утверждён стандарт ECMAScript 8 (2017) "  +/
Сообщение от Zoolander on 12-Июл-17, 22:14 
Хоть один юзкейс бы...
Ответить | Правка | ^ к родителю #47 | Наверх | Cообщить модератору

71. "Утверждён стандарт ECMAScript 8 (2017) "  +/
Сообщение от angra (ok) on 13-Июл-17, 09:01 
Представь, что массив состоит не из коротких чисел и записывается в одну строку, а из сложных элементов, каждый из которых на отдельной строке, а то и вовсе является блоком из десятка строк. И в процессе разработки элементы этого массива надо будет добавлять, удалять, менять местами. В этом случае каждый раз следить за добавлением/удалением запятой весьма напрягает.
Ответить | Правка | ^ к родителю #58 | Наверх | Cообщить модератору

73. "Утверждён стандарт ECMAScript 8 (2017) "  +/
Сообщение от defu on 13-Июл-17, 11:06 
Основное применение этому, это git и подобное.
Когда элементы объекта/массива находятся в разных строках и, к примеру, ты добавляешь новую строку с новым элементом, тебе нужно поставить запятую в предыдущей строке за последним элементом. И это уходит как 2 строки исправления в гит, вместо одной когда используешь trailing commas.
Ответить | Правка | ^ к родителю #58 | Наверх | Cообщить модератору

83. "Утверждён стандарт ECMAScript 8 (2017) "  +/
Сообщение от Zoolander on 13-Июл-17, 18:42 
Логично. Спасибо
Ответить | Правка | ^ к родителю #73 | Наверх | Cообщить модератору

56. "Утверждён стандарт ECMAScript 8 (2017) "  –1 +/
Сообщение от th3m3 (ok) on 12-Июл-17, 21:24 
Что-то как-то негусто. Запятые какие-то, нафиг они нужны? И так нормально живётся. В общем, фичи какие-то такие, что и без этого нормально жили.
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

68. "Утверждён стандарт ECMAScript 8 (2017) "  +/
Сообщение от Ydro on 13-Июл-17, 08:45 
Лучше бы вместо этих методов, которые легко реализовать самим, сделали нормальную защиту "классов" вместо бубна в виде Object.freeze()
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

76. "Утверждён стандарт ECMAScript 8 (2017) "  –1 +/
Сообщение от krasnodar2000 on 13-Июл-17, 13:57 
запятые вообще зачем? вон в Clojure нет их и норм.
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

79. "Утверждён стандарт ECMAScript 8 (2017) "  –1 +/
Сообщение от Zoolander on 13-Июл-17, 16:25 
Clojure большинство хомячков не осилят. Синтаксис другой.

Все мои знакомые и друзья видят синтаксис, боятся его, и тут же закрывают книги, статьи и прочее по Clojure и продолжают писать на JS, Java, Python, Go, сейчас еще Rust.

Функциональные языки после императивных тяжело даются. Императивщина головного мозга трудно лечится )

Ответить | Правка | ^ к родителю #76 | Наверх | Cообщить модератору

81. "Утверждён стандарт ECMAScript 8 (2017) "  +/
Сообщение от defu on 13-Июл-17, 18:29 
Javascript как-бы мультипарадигмальный, может быть и процедурный и ооп и функциональный ;) В последний год все больше и больше народа переходят на функциональный стиль написания.
А про без запятых, так js тоже может =D , const arr = '1 2 3 4 5'.split(' ');

Ответить | Правка | ^ к родителю #79 | Наверх | Cообщить модератору

87. "Утверждён стандарт ECMAScript 8 (2017) "  –1 +/
Сообщение от Zoolander on 13-Июл-17, 20:10 
Ха-ха, приколол )

Насчет моды на функциональное - согласен. Только это тупая мода без понимания откуда все это берется.

А все это новое уже было в LISP лет 60 назад... )

Ответить | Правка | ^ к родителю #81 | Наверх | Cообщить модератору

88. "Утверждён стандарт ECMAScript 8 (2017) "  –1 +/
Сообщение от Zoolander on 13-Июл-17, 20:11 
> Ха-ха, приколол )
> Насчет моды на функциональное - согласен. Только это тупая мода без понимания
> откуда все это берется.
> А все это новое уже было в LISP лет 60 назад... )

И следующим этапом по-идее этим людям, кто в функциональном стиле пишет - перейти на что-то вроде ClojureScript, ан-нет )

Ответить | Правка | ^ к родителю #87 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру