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

แชร์
ฝัง
  • เผยแพร่เมื่อ 3 ก.ค. 2020
  • Веб разработка не стоит на месте, это специфическая сфера деятельности, которая требует ежедневного изучения и поиска новых знаний. В основном это прослеживается в экосистеме языка программирования JavaScript. После выхода ES6 версии в 2015 году, Javascript начал еще более активно развиваться и каждый год выкатывать какие то новшества и изменения, которые требует данный язык программирования для более быстрой и удобной работы. В этом видео мы рассмотрим стандарт ES2020 или как по другому его еще называют ES11. Я покажу все нововведения данной спецификации и все функции с примерами кода, все подробно разберем. С каждым годом с одной стороны Javascript становится легче для начинающих, но с другой и сложнее так как увеличивается объем необходимых знаний. Что нового в javascript я покажу и расскажу буквально за 12 минут, и не займет много вашего времени. BigInt, StringMatchAll, PromiceAllSettled, globalThis.

ความคิดเห็น • 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

    • @puhd4167
      @puhd4167 4 ปีที่แล้ว +1

      Признателен)

    • @levkrinitskych1
      @levkrinitskych1 4 ปีที่แล้ว

      Спасибо

  • @Maiq-The_Liar
    @Maiq-The_Liar 4 ปีที่แล้ว +38

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

    • @user-dd3nm6yz6d
      @user-dd3nm6yz6d 4 ปีที่แล้ว +3

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

  • @vova2966
    @vova2966 4 ปีที่แล้ว

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

  • @alexandrkruglyak
    @alexandrkruglyak 4 ปีที่แล้ว

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

  • @mikaelgevorgyan4521
    @mikaelgevorgyan4521 4 ปีที่แล้ว +1

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

    • @SuprunAlexey
      @SuprunAlexey  4 ปีที่แล้ว +1

      Нужно успевать

  • @user-so8jw7zb5l
    @user-so8jw7zb5l 4 ปีที่แล้ว

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

  • @stukanovgosha3638
    @stukanovgosha3638 4 ปีที่แล้ว

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

  • @antonmaklakov
    @antonmaklakov 3 ปีที่แล้ว +3

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

  • @user-pi3em2ke2l
    @user-pi3em2ke2l 4 ปีที่แล้ว +2

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

  • @YellowPanamka
    @YellowPanamka 4 ปีที่แล้ว

    Пасибо

  • @tigran5050
    @tigran5050 4 ปีที่แล้ว

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

  • @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

    • @user-yw9wx4lv2w
      @user-yw9wx4lv2w 4 ปีที่แล้ว +1

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

  • @confymarlow
    @confymarlow 4 ปีที่แล้ว +4

    Топ

    • @SuprunAlexey
      @SuprunAlexey  4 ปีที่แล้ว

      Спасибо

    • @DIEZ919191
      @DIEZ919191 4 ปีที่แล้ว

      Прокрастинация

  • @user-uc8bn2mj8m
    @user-uc8bn2mj8m 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 спасибо за ответы

  • @sjsj6546
    @sjsj6546 4 ปีที่แล้ว

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

  • @Kira_sk
    @Kira_sk 4 ปีที่แล้ว +1

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

  • @tigran5050
    @tigran5050 4 ปีที่แล้ว

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

  • @grimera1937
    @grimera1937 4 ปีที่แล้ว +1

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

    • @grimera1937
      @grimera1937 4 ปีที่แล้ว

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

    • @SuprunAlexey
      @SuprunAlexey  4 ปีที่แล้ว

      Спасибо 😊

  • @giorgidarbaidze84
    @giorgidarbaidze84 4 ปีที่แล้ว +2

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

    • @SuprunAlexey
      @SuprunAlexey  4 ปีที่แล้ว

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

  • @user-hc5px6de9y
    @user-hc5px6de9y 4 ปีที่แล้ว +1

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

    • @crutchmaster9637
      @crutchmaster9637 4 ปีที่แล้ว

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

  • @paveltretyakov4662
    @paveltretyakov4662 2 ปีที่แล้ว

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

  • @gyros9162
    @gyros9162 4 ปีที่แล้ว +1

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

    • @SuprunAlexey
      @SuprunAlexey  4 ปีที่แล้ว

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

    • @user-wo8wd9kr1b
      @user-wo8wd9kr1b 4 ปีที่แล้ว

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

    • @SuprunAlexey
      @SuprunAlexey  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 ปีที่แล้ว

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

  • @tigran5050
    @tigran5050 4 ปีที่แล้ว +1

    promiseAllSettled🤤🤤🤤

  • @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

  • @andrej_a1656
    @andrej_a1656 4 ปีที่แล้ว

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

    • @ilnurryazhapov9377
      @ilnurryazhapov9377 4 ปีที่แล้ว +1

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

    • @SuprunAlexey
      @SuprunAlexey  4 ปีที่แล้ว

      Решать вам

    • @Maiq-The_Liar
      @Maiq-The_Liar 4 ปีที่แล้ว +1

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

    • @andrej_a1656
      @andrej_a1656 4 ปีที่แล้ว

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

    • @user-yw9wx4lv2w
      @user-yw9wx4lv2w 4 ปีที่แล้ว

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

  • @alexispell4251
    @alexispell4251 3 ปีที่แล้ว

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

  • @alekseysverbeev2934
    @alekseysverbeev2934 4 ปีที่แล้ว +1

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

    • @SuprunAlexey
      @SuprunAlexey  4 ปีที่แล้ว

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

    • @alekseysverbeev2934
      @alekseysverbeev2934 4 ปีที่แล้ว

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

  • @arsa946
    @arsa946 4 ปีที่แล้ว

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

    • @maximevtahov2360
      @maximevtahov2360 4 ปีที่แล้ว

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

  • @123pavel61981
    @123pavel61981 4 ปีที่แล้ว

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

    • @SuprunAlexey
      @SuprunAlexey  4 ปีที่แล้ว

      Ну а как иначе

    • @Maiq-The_Liar
      @Maiq-The_Liar 4 ปีที่แล้ว +1

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

    • @militer1570
      @militer1570 4 ปีที่แล้ว

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

    • @DIEZ919191
      @DIEZ919191 4 ปีที่แล้ว

      Спасибо

    • @user-dd3nm6yz6d
      @user-dd3nm6yz6d 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 ปีที่แล้ว

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

  • @vlacrat
    @vlacrat 4 ปีที่แล้ว

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

    • @vvg1077
      @vvg1077 4 ปีที่แล้ว

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

  • @kexibq987
    @kexibq987 4 ปีที่แล้ว +1

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

    • @SuprunAlexey
      @SuprunAlexey  4 ปีที่แล้ว

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

    • @crutchmaster9637
      @crutchmaster9637 4 ปีที่แล้ว

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

  • @user-jq3jt4me2k
    @user-jq3jt4me2k 4 ปีที่แล้ว +1

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

    • @jewgenijmoldawski3306
      @jewgenijmoldawski3306 4 ปีที่แล้ว

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

  • @mikaelgevorgyan4521
    @mikaelgevorgyan4521 4 ปีที่แล้ว +1

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

    • @SuprunAlexey
      @SuprunAlexey  4 ปีที่แล้ว

      Ага

    • @user-yw9wx4lv2w
      @user-yw9wx4lv2w 4 ปีที่แล้ว

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

  • @crutchmaster9637
    @crutchmaster9637 4 ปีที่แล้ว

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

    • @SuprunAlexey
      @SuprunAlexey  4 ปีที่แล้ว

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

    • @vladislavstepanov7591
      @vladislavstepanov7591 4 ปีที่แล้ว

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

  • @Mr-in8km
    @Mr-in8km 4 ปีที่แล้ว

    Js сложна

    • @SuprunAlexey
      @SuprunAlexey  4 ปีที่แล้ว +1

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

    • @crutchmaster9637
      @crutchmaster9637 4 ปีที่แล้ว

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

  • @LLuKKen
    @LLuKKen 4 ปีที่แล้ว

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

    • @SuprunAlexey
      @SuprunAlexey  4 ปีที่แล้ว

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

    • @jewgenijmoldawski3306
      @jewgenijmoldawski3306 4 ปีที่แล้ว

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

  • @vvg1077
    @vvg1077 4 ปีที่แล้ว

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

  • @8-Artem-8
    @8-Artem-8 4 ปีที่แล้ว +1

    glogalTHIS ?? globalTHIS => globalTHIS

  • @Progress1987tomaR
    @Progress1987tomaR 4 ปีที่แล้ว

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

    • @SuprunAlexey
      @SuprunAlexey  4 ปีที่แล้ว

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

    • @Progress1987tomaR
      @Progress1987tomaR 4 ปีที่แล้ว

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

  • @dvdrelin
    @dvdrelin 4 ปีที่แล้ว +1

    Glogal this. Mmm

  • @victormog
    @victormog 4 ปีที่แล้ว +1

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

    • @SuprunAlexey
      @SuprunAlexey  4 ปีที่แล้ว

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

    • @victormog
      @victormog 4 ปีที่แล้ว

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

    • @SuprunAlexey
      @SuprunAlexey  4 ปีที่แล้ว

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

    • @victormog
      @victormog 4 ปีที่แล้ว

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

    • @SuprunAlexey
      @SuprunAlexey  4 ปีที่แล้ว

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

  • @RisDeep
    @RisDeep 4 ปีที่แล้ว +2

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