Что нового в JavaScript, новый стандарт ES2020/ES11 функции с примерами кода

Поделиться
HTML-код
  • Опубликовано: 26 янв 2025

Комментарии • 122

  • @SuprunAlexey
    @SuprunAlexey  4 года назад +17

    Таймкоды:
    1:33 - meta
    2:35 - BigInt
    4:49 - StringMatchAll
    5:42 - экспорт модулей
    6:11 - Оператор опциональной последовательности
    7:51 - Нулевой оператор
    9:17 - Динамический импорт
    9:50 - promiseAllSettled
    10:58 - GlobalThis

  • @Maiq-The_Liar
    @Maiq-The_Liar 4 года назад +38

    7:22, если ты обращаешься к несуществующему свойству объекта, то и так вернется undefined. Тут, наверное, все-таки тот случай, когда самого объекта не существует или он не является объектом. В темплейте ангуляра давно такой синтаксис можно использовать, например, *ngIf="data?.admin?.id", что позволит не получить ошибку _can not read property 'admin' of undefined_ если данные получаем асинхронно и на момент рендера этой части кода данные для data еще не были получены.

    • @ПетроПередерий-р1у
      @ПетроПередерий-р1у 4 года назад +3

      Правильно замечено. А по поводу meta, я из ролика нихрена не понял что зачем и вообще нафига.

  • @mikaelgevorgyan4521
    @mikaelgevorgyan4521 4 года назад +1

    😁😁😁приятно новое слушать блин как быстро все развивается!!!

  • @ВладикКоваль
    @ВладикКоваль 4 года назад +10

    Где можно наблюдать за новыми обновлениями языка?

    • @SuprunAlexey
      @SuprunAlexey  4 года назад +9

      У меня на канале:)

    • @outlaw4Iife
      @outlaw4Iife 4 года назад +5

      на на гитхаб аккаунте tc39 смотри раздел с proposals

    • @eugenenovikov671
      @eugenenovikov671 4 года назад

      @@outlaw4Iife 1) что за графа чемпион после графы автор? чемпион чего? 2) посмотрел на пропозалы - яваскрипт хотят превратить в поеботу какую-то - смесь всех языков. если так дальше пойдёт на яваскрипте можно будет операционные системы писать

    • @34meff
      @34meff 4 года назад

      @@eugenenovikov671 1. чемпион пропозала - человек, который пыхтит и надрывается, чтобы пропозал попал в стандарт. 2. это opensource. любой человек может придти в гитхаб и предложить свой пропозал. даже ты можешь придти туда и предложить пропозал "не превращайте яваскрипт в поеботу"

    • @eugenenovikov671
      @eugenenovikov671 4 года назад

      @@34meff спасибо за ответы

  • @alexandrkruglyak
    @alexandrkruglyak 4 года назад

    Класс, спасибо автору!

  • @ЕвгенийБорисов-е1ч
    @ЕвгенийБорисов-е1ч 4 года назад +2

    Скажите когда в js "undefined + 5" будет выдавать ошибку а не возвращать "'undefined5'"?

  • @tigran5050
    @tigran5050 4 года назад

    Ааа, оператор ?? не менее хорош, пиздец, я так рад

  • @sjsj6546
    @sjsj6546 4 года назад

    Здравствуйте!Есть такая задачи на switch и if else.
    Она звучит так:
    В prompt вводишь любое число и в alert должно выйти:
    Пример:
    На ветке 3 птицы
    На ветке 23409 птиц.
    Как это осуществить?
    Заранее спасибо

  • @giorgidarbaidze84
    @giorgidarbaidze84 4 года назад +9

    В комментариях наблюдяю некий пессимизм, поэтому, напишу для начинающих.
    То, что в этой области(веб программирование) настолько все быстро меняется, что невозможно угнаться, чушь...
    Просто не получится забросить все на 2-3 года и потом безболезненно продолжить, нужно будет потратить некоторое время на "реабилитацию".
    Я 2 года бросил программирование, а год назад решил все вспомнить и выучить это новые фичи.
    В тот момент я просто знал html, css и базовый js, я увидел, что мои знания и в плане Backend и в Frontend устарели, а решил не гнаться за двумя зайцами, а начать с фронтенда.
    На изучением новых(или не очень) фич ушло пара месяцев, за это время я научилься использовать Git, npm/yarn, Sass и основы React js и начал работать начинающим фронтендом, на работе научили Typescript,освоил REST принципы, зарплата отличная для новичка, сейчас учу Webpack.
    Можно составить огромный список, того чего не знаешь и бросить все к черту, а можно начать учить и увидеть, что не все так сложно и многие трендовые штуки являются очень простыми в изучении.
    А раз в год изучить что то новое не должно быть проблемой
    К тому же, добавлю, никто на работе(или в команде) не будет от вас требовать знать все новые технологии, которые вышли 3 месяца назад

    • @SuprunAlexey
      @SuprunAlexey  4 года назад

      Giorgi Darbaidze понятно

    • @akovalevv
      @akovalevv 4 года назад +1

      @@SuprunAlexey хули тебе понятно. Реально задолбали подобные тебе - ой все меняется быстро и т д. Если ты знаешь js то пусть фреймворки хоть каждый день выходят, что с того? Фрем всего лишь оболочка. Но основа , то все равно язык. Отсюда и срач в айти, потому что новичкам ссут в уши типо гонитесь, бегите, и в итоге хрщики потом охуевают, когда приходят типв которые знают все современные фреймворки, все на тренде, но при этом базы языка не знают , а по тому даже елементарные операции за рамками фреймов сразу бегут гуглить на стаке

    • @momon5994
      @momon5994 4 года назад

      @@akovalevv Удачи тебе написать что-то стоящие на чистом js

    • @Илья-с1л6э
      @Илья-с1л6э 4 года назад +1

      @@momon5994 так а при чем тут чистый js? Человек условно говорит что фундаментальные знания куда важнее чем знания конкретных инструментов. И он прав

  • @paveltretyakov4662
    @paveltretyakov4662 3 года назад

    Не совсем корректный пример для оператора доступа.
    user.admin1?.id - так более наглядно показать работу опеаратора, так как admin1 действительно является undefined, а прочитать значение из undefined - невозможно, а несуществующие конечные свойства, они и так будут undefined и не будут вызывать исключения, чего нельзя сказать о проможеуточных свойствах.
    А вообще, спасибо за материал, очень интересно ) js начинает на ts смахивать )

  • @antonmaklakov
    @antonmaklakov 4 года назад +3

    *Я* : Пытаюсь привыкнуть к EcmaScript 8
    *Что нового в JavaScript, новый стандарт ES2020/ES11*
    *Я* : Да ёмаё

  • @ЕвгенийИванов-и6е6м
    @ЕвгенийИванов-и6е6м 4 года назад +1

    Самый главной вопрос этих новых плюшек не раскрыт! Какая у них сейчас поддержка браузерами, версии, какая версия ноды поддерживает уже, bable уже умеет их транспилировать хотя бы на es6.? Есть ли полифилы?

    • @crutchmaster9637
      @crutchmaster9637 4 года назад

      medium.com/@nodejs/node-js-version-14-available-now-8170d384567e
      В 14 ноде есть ?? и .?. Всё остальное, кроме await import, по большей части косметика, которую до этого и так каждый сам себе приделывал.

  • @vova2966
    @vova2966 4 года назад

    Спасибо, круто 👍

  • @gyros9162
    @gyros9162 4 года назад +1

    Случайно открыл видео трехлетней давности, а потом это. Рост автора ощутим по голосу и ритму

    • @SuprunAlexey
      @SuprunAlexey  4 года назад

      Ber serker прогресс конечно есть, но ещё работать и работать

    • @ФедяМинов
      @ФедяМинов 4 года назад

      ​@@SuprunAlexey Зачем так скромничать? Я подписан на тучу каналов об IT, а инфа о новом ES 11 есть только здесь... Сильно)

    • @SuprunAlexey
      @SuprunAlexey  4 года назад

      Федя Минов просто нет предела совершенству, да и сам понимаю что надо проработать качество видео, дикцию, текст видео и тд, так что впереди ещё много работы:)

  • @mansurhamidoff1853
    @mansurhamidoff1853 4 года назад +6

    7:48 если даже писать users.admin.role не будет вылезать ошибка так как у объекта users существует свойство admin. Optional chaining пишется после свойства которое возможно не существует, т.е в данном случае мы подстраховываем от возможного отсутствия свойства admin, а не role.

    • @alexd2133
      @alexd2133 4 года назад

      то есть правильно будет users.admin.role? , и если role нет то вернёт undefined ... ?

    • @archieDeveloper
      @archieDeveloper 4 года назад

      @@alexd2133 думаю наоборот, users?.admin?.roles, но не проверял

    • @SERESIGO
      @SERESIGO 4 года назад +1

      @@alexd2133 Если нужно проверить наличие поля admin внутри users, то пишешь users?.admin
      дальше соответственно: users?.admin?.vse?.chto?.ugodno

  • @ЕвгенийСахаров-ы1я
    @ЕвгенийСахаров-ы1я 4 года назад

    Спасибо, было интересно

  • @Eugene-mm3ee
    @Eugene-mm3ee 4 года назад +1

    Не совсем корректный пример по оператору опциональной последовательности (правильнее его называть null safe оператор), тут скорее правильным примером было бы такое обращение - users.userA?.id, когда userA == null || undefined, в таком случае не будет ошибки "cannot read property of undefined/null", а просто выполнение прекратиться на userA и в переменную попадёт undefined без исключения, которое нужно было бы обрабатывать, либо которое бы сломало выполнение.

    • @alexclever7150
      @alexclever7150 4 года назад

      Я тоже про это хотел написать) Никакой ошибки там не будет и вернёт undefined с ? или без

    • @dvdrelin
      @dvdrelin 4 года назад

      Это элвис-оператор)

  • @stukanovgosha3638
    @stukanovgosha3638 4 года назад

    Спасибо большое;)

  • @giorgidarbaidze84
    @giorgidarbaidze84 4 года назад +2

    Оператор опциональной последовательности очень удобная штука, всегда использую. Кстати, даже функции можно вызывать опционально, myFunction?.()
    Нет, я ошибся, это синтаксис Babel, а не нативный JS.

    • @SuprunAlexey
      @SuprunAlexey  4 года назад

      Очень удобная, согласен

  • @Kira_sk
    @Kira_sk 4 года назад +1

    Промисы топ вещь

  • @grimera1937
    @grimera1937 4 года назад +1

    Null можно было раньше и проверять командой, а так есть полезные функции, thx for information 👍👏

    • @grimera1937
      @grimera1937 4 года назад

      + с импортами полезно, но если рассматривать стаки MEAN или MERN то лучше использовать require('...')

    • @SuprunAlexey
      @SuprunAlexey  4 года назад

      Спасибо 😊

  • @confymarlow
    @confymarlow 4 года назад +4

    Топ

  • @andrej_a1656
    @andrej_a1656 4 года назад

    Если учишь JS +- полгода, то как все это нагнать? Ведь пока дойдешь до более-менее нормального уровня, появится ещё множество нового; пока учишь новое -- появляется ещё. Есть ли вообще смысл в этой гонке?

    • @ilnurryazhapov
      @ilnurryazhapov 4 года назад +1

      Оно не так часто появляется

    • @SuprunAlexey
      @SuprunAlexey  4 года назад

      Решать вам

    • @Maiq-The_Liar
      @Maiq-The_Liar 4 года назад +1

      Забей болт. Просто двигайся вперед в выбранном стеке. Вышло обновление ТВОЕГО фреймворка - прочитал релизноутс, если что-то существенное - обновился, если фигня какая-то - продолжай дальше лепить свой проект. На ранних этапах тебе не гнаться за всем нужно, а получить крепкую базу. Все хоть и меняется, но не настолько существенно, что твои знания годичной давности перестают быть актуальными.

    • @andrej_a1656
      @andrej_a1656 4 года назад

      @@Maiq-The_Liar спасибо.

    • @Илья-с1л6э
      @Илья-с1л6э 4 года назад

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

  • @alekseysverbeev2934
    @alekseysverbeev2934 4 года назад +1

    Мне кажется перегибаешь насчёт того, что не зная новую версию фреймворка или 3,5 новые фичи нового стандарта ECMA ты прям выпадешь из обоймы) Всё это учится на ходу по мере того, как с этим сталкиваешься

    • @SuprunAlexey
      @SuprunAlexey  4 года назад

      Ты не выпадаешь но остаёшься позади

    • @alekseysverbeev2934
      @alekseysverbeev2934 4 года назад

      @@SuprunAlexey в основном на любом проекте все нововведения получаются только на проекте с нуля. Ввести даже новую версию какой-то либы в легаси проекте может быть очень накладно. Ну понятно, что изучать новое надо всегда, просто для общего развития и квалификации, неизвестно куда жизнь завтра закинет.

  • @tigran5050
    @tigran5050 4 года назад

    ?. это просто охуенно, спасибо большое за это

  • @Darkness-hz2vi
    @Darkness-hz2vi 4 года назад +27

    Боже, зачем я это смотрю если я пишу на C++?

    • @SuprunAlexey
      @SuprunAlexey  4 года назад +4

      Интересно ведь

    • @ksenyaD
      @ksenyaD 4 года назад

      😂

    • @m.movsar
      @m.movsar 4 года назад

      😂👍

    • @Darkness-hz2vi
      @Darkness-hz2vi 4 года назад +3

      @@SuprunAlexey да

    • @asurahan
      @asurahan 4 года назад

      я тоже пишу на С++. но веб морды для своих поделок приходится писать на яваскрипте. так что это полезно

  • @crutchmaster9637
    @crutchmaster9637 4 года назад

    Так bigint можно в ноде было юзать еще в том году. MathAll - это регулярка с флагам g, ?. и ?? - нужен, но лучше бы еще таки сделали перегрузку операторов. Всё остальное делается одной строчкой кода. Ничего нового особо не сделали, я бы не сказал, что js такой быстрый, что моргнул и твои знания уже устарели. Пора выключать хипсторов, js - это уже такое неторопливое легаси. Прокинуть int_64 - это конечно здорово, но нужны нативные реализации BigDelimal, когда они их родят?

    • @SuprunAlexey
      @SuprunAlexey  4 года назад

      Хз, посмотрим

    • @vladislavstepanov7591
      @vladislavstepanov7591 4 года назад

      как ты себе представляешь перегрузку с динамической типизацией?

  • @YellowPanamka
    @YellowPanamka 4 года назад

    Пасибо

  • @vlacrat
    @vlacrat 4 года назад

    То самое чувство когда учишь js по книжке а там ES6, а тут уже ES11, мне плакать хочется.......

    • @vvg1077
      @vvg1077 4 года назад

      А потом смотришь вакансии и видишь что в 9 из 10 нужно ес5/ес6 и вытираешь слезы. А в той 10 вакансии просят либо ес7 либо jquery.

  • @vvg1077
    @vvg1077 4 года назад

    Спасибо за видос, но... биг инт не раскрыт, условное обращение к свойству это вообще стыд. В какой стадии все эти фичи в плане имплементации? Что по поддержке браузерной / Babel? Вступительная часть в контексте ролика - бред. Причём тут фреймворки - вообще не ясно. Фичи фреймворков существуют практически отдельно от фич языка. Самая тесная связь между фичами для конечного разработчика это, наверное, методы массивов map/filter/some/every/reduce. Даже когда фичи попадают на финальную стадию и оказываются в стандарте языка, до их использования в проде проходит ещё не мало времени. 10 командам из 10 будет ближайшие годы будет пофиг пользуешься ли условным обращением к свойству из ес2020 или нет. Потолок с которым желательно быть хотя бы знакомым это ес8. А если где то и будут требовать большего, то на полное ознакомление не уйдёт больше часа. Не нагоняйте тоски на ещё не окрепших «коллег».

  • @alexispell4251
    @alexispell4251 4 года назад

    3:48
    Где-то ангелы кричат: "прости, прощай..."

  • @НикитаСазонов-п5з
    @НикитаСазонов-п5з 4 года назад +1

    Нда, довольно коряво рассказано, ну а в пункте 5, как уже указали ниже - вообще не продемонстрирована новая возможность, а приведён пример который точно также отработал бы и без "?."

    • @jewgenijmoldawski3306
      @jewgenijmoldawski3306 4 года назад

      Может быть просто проверка на внимательность зрителей :-)

  • @tigran5050
    @tigran5050 4 года назад +1

    promiseAllSettled🤤🤤🤤

  • @kexibq987
    @kexibq987 4 года назад +1

    Начал изучать JavaScript 3 дня назад, а уже обнова в языке *0*

    • @SuprunAlexey
      @SuprunAlexey  4 года назад

      Учите все так же, до этого дойдёте

    • @crutchmaster9637
      @crutchmaster9637 4 года назад

      Там сейчас особо ничего нового нет. Изменение языка замедляется под грузом написанного на нём. В QuickJs Беллард сделал себе и перегрузки, и либу с BigDecimal, до комитета это не знаю когда дойдет, так и будут все считать на тормозных либах, где bigdecimal будет в виде строки и с методами типа a.add(b).multiply(c).divide(d);

  • @123pavel61981
    @123pavel61981 4 года назад

    Смотрю, что начали брать фишки от старших братьев "?." и "??" давно есть с C#, так держать!

    • @SuprunAlexey
      @SuprunAlexey  4 года назад

      Ну а как иначе

    • @Maiq-The_Liar
      @Maiq-The_Liar 4 года назад +1

      Так-то JS постарше C# будет :)

    • @militer1570
      @militer1570 4 года назад

      ?? даже в PHP уже есть 😁

    • @DIEZ919191
      @DIEZ919191 4 года назад

      Спасибо

    • @ПетроПередерий-р1у
      @ПетроПередерий-р1у 4 года назад

      Давно пора все языки слить в один. А то понавыдумывают всякой хрени, (типа новое, крутое) а потом друг у друга тырят фичи и в итоге всё становится почти одинаковым. Так нахрена огород городить? ДАЁШЬ В МАССЫ ОДИН ЯЗЫК НА ВСЕ СЛУЧАИ ЖИЗНИ! :-)

  • @LLuKKen
    @LLuKKen 4 года назад

    А я js собрался учить.. Да пока я одно учу, другое появится.. И то, что я учу, актуальность потеряет...

    • @SuprunAlexey
      @SuprunAlexey  4 года назад

      Ничего страшного и то что появится выучите

    • @jewgenijmoldawski3306
      @jewgenijmoldawski3306 4 года назад

      @@ekaterinaregard8040 по 16/7 долго не поработаешь, через месяц, максимум два начнутся проблемы. И отдача все равно снизится.

  • @Progress1987tomaR
    @Progress1987tomaR 4 года назад

    Прям милисекунды монтируешь, и такое ощущение что с книжки читаешь не вдыхая. Не мешало бы секундные паузы, хотя бы между пунктами!

    • @SuprunAlexey
      @SuprunAlexey  4 года назад

      Миллисекунды монтирую - это как?

    • @Progress1987tomaR
      @Progress1987tomaR 4 года назад

      @@SuprunAlexey склеиваешь кадры. Когда есть пауза между приложениями, информация лучше воспринимается.

  • @Mr-in8km
    @Mr-in8km 4 года назад

    Js сложна

    • @SuprunAlexey
      @SuprunAlexey  4 года назад +1

      Никто и не говорил что будет легко

    • @crutchmaster9637
      @crutchmaster9637 4 года назад

      js сам по себе - очень простой язык. Надо только вызубрить неявные преобразования, въехать в event loop, async/await, свистопляски с let и this, функции-генераторы (которые обычно не нужны). И всё. Остальное - это всякие обвязки вокруг key[value]. По api и всяким методам встроенных объектов - mdn в помощь.

  • @88Artem88
    @88Artem88 4 года назад +1

    glogalTHIS ?? globalTHIS => globalTHIS

  • @victormog
    @victormog 4 года назад +1

    Как-то сумбурно... Зачем так торопиться?

    • @SuprunAlexey
      @SuprunAlexey  4 года назад

      Напишите в каком моменте я торопился?

    • @victormog
      @victormog 4 года назад

      @@SuprunAlexey
      На протяжении всего ролика...
      Это когда рекламу записывают, пытаются сэкономить каждую секунду, а на RUclips всё наоборот - чем длиннее видео, тем больше денег...

    • @SuprunAlexey
      @SuprunAlexey  4 года назад

      Victor Mog кто вам сказал что чем длиннее видео тем больше денег?

    • @victormog
      @victormog 4 года назад

      @@SuprunAlexey
      Суть-то не в этом... Но, возможно, Вы не пользуетесь монетизацией...

    • @SuprunAlexey
      @SuprunAlexey  4 года назад

      @@victormog пользуюсь

  • @arsa946
    @arsa946 4 года назад

    Из полезного для меня только доступ .admin?.id
    Спасибо!

    • @maximevtahov2360
      @maximevtahov2360 4 года назад

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

  • @mikaelgevorgyan4521
    @mikaelgevorgyan4521 4 года назад +1

    да @_@ ****( уже ES11 есть!!

    • @SuprunAlexey
      @SuprunAlexey  4 года назад

      Ага

    • @Илья-с1л6э
      @Илья-с1л6э 4 года назад

      каждый год выходит новая версия стандарта

  • @RisDeep
    @RisDeep 4 года назад +2

    Много неправильных формулировок, мало подробностей. Автор копай глубже и проверяй текст сценария ролика

  • @dvdrelin
    @dvdrelin 4 года назад +1

    Glogal this. Mmm