7:22, если ты обращаешься к несуществующему свойству объекта, то и так вернется undefined. Тут, наверное, все-таки тот случай, когда самого объекта не существует или он не является объектом. В темплейте ангуляра давно такой синтаксис можно использовать, например, *ngIf="data?.admin?.id", что позволит не получить ошибку _can not read property 'admin' of undefined_ если данные получаем асинхронно и на момент рендера этой части кода данные для data еще не были получены.
@@outlaw4Iife 1) что за графа чемпион после графы автор? чемпион чего? 2) посмотрел на пропозалы - яваскрипт хотят превратить в поеботу какую-то - смесь всех языков. если так дальше пойдёт на яваскрипте можно будет операционные системы писать
@@eugenenovikov671 1. чемпион пропозала - человек, который пыхтит и надрывается, чтобы пропозал попал в стандарт. 2. это opensource. любой человек может придти в гитхаб и предложить свой пропозал. даже ты можешь придти туда и предложить пропозал "не превращайте яваскрипт в поеботу"
Здравствуйте!Есть такая задачи на switch и if else. Она звучит так: В prompt вводишь любое число и в alert должно выйти: Пример: На ветке 3 птицы На ветке 23409 птиц. Как это осуществить? Заранее спасибо
В комментариях наблюдяю некий пессимизм, поэтому, напишу для начинающих. То, что в этой области(веб программирование) настолько все быстро меняется, что невозможно угнаться, чушь... Просто не получится забросить все на 2-3 года и потом безболезненно продолжить, нужно будет потратить некоторое время на "реабилитацию". Я 2 года бросил программирование, а год назад решил все вспомнить и выучить это новые фичи. В тот момент я просто знал html, css и базовый js, я увидел, что мои знания и в плане Backend и в Frontend устарели, а решил не гнаться за двумя зайцами, а начать с фронтенда. На изучением новых(или не очень) фич ушло пара месяцев, за это время я научилься использовать Git, npm/yarn, Sass и основы React js и начал работать начинающим фронтендом, на работе научили Typescript,освоил REST принципы, зарплата отличная для новичка, сейчас учу Webpack. Можно составить огромный список, того чего не знаешь и бросить все к черту, а можно начать учить и увидеть, что не все так сложно и многие трендовые штуки являются очень простыми в изучении. А раз в год изучить что то новое не должно быть проблемой К тому же, добавлю, никто на работе(или в команде) не будет от вас требовать знать все новые технологии, которые вышли 3 месяца назад
@@SuprunAlexey хули тебе понятно. Реально задолбали подобные тебе - ой все меняется быстро и т д. Если ты знаешь js то пусть фреймворки хоть каждый день выходят, что с того? Фрем всего лишь оболочка. Но основа , то все равно язык. Отсюда и срач в айти, потому что новичкам ссут в уши типо гонитесь, бегите, и в итоге хрщики потом охуевают, когда приходят типв которые знают все современные фреймворки, все на тренде, но при этом базы языка не знают , а по тому даже елементарные операции за рамками фреймов сразу бегут гуглить на стаке
Не совсем корректный пример для оператора доступа. user.admin1?.id - так более наглядно показать работу опеаратора, так как admin1 действительно является undefined, а прочитать значение из undefined - невозможно, а несуществующие конечные свойства, они и так будут undefined и не будут вызывать исключения, чего нельзя сказать о проможеуточных свойствах. А вообще, спасибо за материал, очень интересно ) js начинает на ts смахивать )
Самый главной вопрос этих новых плюшек не раскрыт! Какая у них сейчас поддержка браузерами, версии, какая версия ноды поддерживает уже, bable уже умеет их транспилировать хотя бы на es6.? Есть ли полифилы?
medium.com/@nodejs/node-js-version-14-available-now-8170d384567e В 14 ноде есть ?? и .?. Всё остальное, кроме await import, по большей части косметика, которую до этого и так каждый сам себе приделывал.
Федя Минов просто нет предела совершенству, да и сам понимаю что надо проработать качество видео, дикцию, текст видео и тд, так что впереди ещё много работы:)
7:48 если даже писать users.admin.role не будет вылезать ошибка так как у объекта users существует свойство admin. Optional chaining пишется после свойства которое возможно не существует, т.е в данном случае мы подстраховываем от возможного отсутствия свойства admin, а не role.
Не совсем корректный пример по оператору опциональной последовательности (правильнее его называть null safe оператор), тут скорее правильным примером было бы такое обращение - users.userA?.id, когда userA == null || undefined, в таком случае не будет ошибки "cannot read property of undefined/null", а просто выполнение прекратиться на userA и в переменную попадёт undefined без исключения, которое нужно было бы обрабатывать, либо которое бы сломало выполнение.
Оператор опциональной последовательности очень удобная штука, всегда использую. Кстати, даже функции можно вызывать опционально, myFunction?.() Нет, я ошибся, это синтаксис Babel, а не нативный JS.
Если учишь JS +- полгода, то как все это нагнать? Ведь пока дойдешь до более-менее нормального уровня, появится ещё множество нового; пока учишь новое -- появляется ещё. Есть ли вообще смысл в этой гонке?
Забей болт. Просто двигайся вперед в выбранном стеке. Вышло обновление ТВОЕГО фреймворка - прочитал релизноутс, если что-то существенное - обновился, если фигня какая-то - продолжай дальше лепить свой проект. На ранних этапах тебе не гнаться за всем нужно, а получить крепкую базу. Все хоть и меняется, но не настолько существенно, что твои знания годичной давности перестают быть актуальными.
"более-менее нормального уровнь" это не знание конкретных языков/фреймворков, а понимание фундаментальных основ. Так что если разработчик достиг "нормального уровня" то даже сменив язык он достаточно быстро выйдет на предыдущую производительность. Про смену версии языка/фрейма тут можно и не говорить
Мне кажется перегибаешь насчёт того, что не зная новую версию фреймворка или 3,5 новые фичи нового стандарта ECMA ты прям выпадешь из обоймы) Всё это учится на ходу по мере того, как с этим сталкиваешься
@@SuprunAlexey в основном на любом проекте все нововведения получаются только на проекте с нуля. Ввести даже новую версию какой-то либы в легаси проекте может быть очень накладно. Ну понятно, что изучать новое надо всегда, просто для общего развития и квалификации, неизвестно куда жизнь завтра закинет.
Так bigint можно в ноде было юзать еще в том году. MathAll - это регулярка с флагам g, ?. и ?? - нужен, но лучше бы еще таки сделали перегрузку операторов. Всё остальное делается одной строчкой кода. Ничего нового особо не сделали, я бы не сказал, что js такой быстрый, что моргнул и твои знания уже устарели. Пора выключать хипсторов, js - это уже такое неторопливое легаси. Прокинуть int_64 - это конечно здорово, но нужны нативные реализации BigDelimal, когда они их родят?
Спасибо за видос, но... биг инт не раскрыт, условное обращение к свойству это вообще стыд. В какой стадии все эти фичи в плане имплементации? Что по поддержке браузерной / Babel? Вступительная часть в контексте ролика - бред. Причём тут фреймворки - вообще не ясно. Фичи фреймворков существуют практически отдельно от фич языка. Самая тесная связь между фичами для конечного разработчика это, наверное, методы массивов map/filter/some/every/reduce. Даже когда фичи попадают на финальную стадию и оказываются в стандарте языка, до их использования в проде проходит ещё не мало времени. 10 командам из 10 будет ближайшие годы будет пофиг пользуешься ли условным обращением к свойству из ес2020 или нет. Потолок с которым желательно быть хотя бы знакомым это ес8. А если где то и будут требовать большего, то на полное ознакомление не уйдёт больше часа. Не нагоняйте тоски на ещё не окрепших «коллег».
Нда, довольно коряво рассказано, ну а в пункте 5, как уже указали ниже - вообще не продемонстрирована новая возможность, а приведён пример который точно также отработал бы и без "?."
Там сейчас особо ничего нового нет. Изменение языка замедляется под грузом написанного на нём. В QuickJs Беллард сделал себе и перегрузки, и либу с BigDecimal, до комитета это не знаю когда дойдет, так и будут все считать на тормозных либах, где bigdecimal будет в виде строки и с методами типа a.add(b).multiply(c).divide(d);
Давно пора все языки слить в один. А то понавыдумывают всякой хрени, (типа новое, крутое) а потом друг у друга тырят фичи и в итоге всё становится почти одинаковым. Так нахрена огород городить? ДАЁШЬ В МАССЫ ОДИН ЯЗЫК НА ВСЕ СЛУЧАИ ЖИЗНИ! :-)
js сам по себе - очень простой язык. Надо только вызубрить неявные преобразования, въехать в event loop, async/await, свистопляски с let и this, функции-генераторы (которые обычно не нужны). И всё. Остальное - это всякие обвязки вокруг key[value]. По api и всяким методам встроенных объектов - mdn в помощь.
@@SuprunAlexey На протяжении всего ролика... Это когда рекламу записывают, пытаются сэкономить каждую секунду, а на RUclips всё наоборот - чем длиннее видео, тем больше денег...
тоже пользовался этой фичей, но злоупотреблять ею нельзя. Полезно, когда данные получаешь асинхронно, чтобы попытка достучаться до свойства не валила приложуху, когда данные ещё не пришли с бэка
Таймкоды:
1:33 - meta
2:35 - BigInt
4:49 - StringMatchAll
5:42 - экспорт модулей
6:11 - Оператор опциональной последовательности
7:51 - Нулевой оператор
9:17 - Динамический импорт
9:50 - promiseAllSettled
10:58 - GlobalThis
Признателен)
Спасибо
7:22, если ты обращаешься к несуществующему свойству объекта, то и так вернется undefined. Тут, наверное, все-таки тот случай, когда самого объекта не существует или он не является объектом. В темплейте ангуляра давно такой синтаксис можно использовать, например, *ngIf="data?.admin?.id", что позволит не получить ошибку _can not read property 'admin' of undefined_ если данные получаем асинхронно и на момент рендера этой части кода данные для data еще не были получены.
Правильно замечено. А по поводу meta, я из ролика нихрена не понял что зачем и вообще нафига.
😁😁😁приятно новое слушать блин как быстро все развивается!!!
Нужно успевать
Где можно наблюдать за новыми обновлениями языка?
У меня на канале:)
на на гитхаб аккаунте tc39 смотри раздел с proposals
@@outlaw4Iife 1) что за графа чемпион после графы автор? чемпион чего? 2) посмотрел на пропозалы - яваскрипт хотят превратить в поеботу какую-то - смесь всех языков. если так дальше пойдёт на яваскрипте можно будет операционные системы писать
@@eugenenovikov671 1. чемпион пропозала - человек, который пыхтит и надрывается, чтобы пропозал попал в стандарт. 2. это opensource. любой человек может придти в гитхаб и предложить свой пропозал. даже ты можешь придти туда и предложить пропозал "не превращайте яваскрипт в поеботу"
@@34meff спасибо за ответы
Класс, спасибо автору!
Скажите когда в js "undefined + 5" будет выдавать ошибку а не возвращать "'undefined5'"?
Ааа, оператор ?? не менее хорош, пиздец, я так рад
Здравствуйте!Есть такая задачи на switch и if else.
Она звучит так:
В prompt вводишь любое число и в alert должно выйти:
Пример:
На ветке 3 птицы
На ветке 23409 птиц.
Как это осуществить?
Заранее спасибо
В комментариях наблюдяю некий пессимизм, поэтому, напишу для начинающих.
То, что в этой области(веб программирование) настолько все быстро меняется, что невозможно угнаться, чушь...
Просто не получится забросить все на 2-3 года и потом безболезненно продолжить, нужно будет потратить некоторое время на "реабилитацию".
Я 2 года бросил программирование, а год назад решил все вспомнить и выучить это новые фичи.
В тот момент я просто знал html, css и базовый js, я увидел, что мои знания и в плане Backend и в Frontend устарели, а решил не гнаться за двумя зайцами, а начать с фронтенда.
На изучением новых(или не очень) фич ушло пара месяцев, за это время я научилься использовать Git, npm/yarn, Sass и основы React js и начал работать начинающим фронтендом, на работе научили Typescript,освоил REST принципы, зарплата отличная для новичка, сейчас учу Webpack.
Можно составить огромный список, того чего не знаешь и бросить все к черту, а можно начать учить и увидеть, что не все так сложно и многие трендовые штуки являются очень простыми в изучении.
А раз в год изучить что то новое не должно быть проблемой
К тому же, добавлю, никто на работе(или в команде) не будет от вас требовать знать все новые технологии, которые вышли 3 месяца назад
Giorgi Darbaidze понятно
@@SuprunAlexey хули тебе понятно. Реально задолбали подобные тебе - ой все меняется быстро и т д. Если ты знаешь js то пусть фреймворки хоть каждый день выходят, что с того? Фрем всего лишь оболочка. Но основа , то все равно язык. Отсюда и срач в айти, потому что новичкам ссут в уши типо гонитесь, бегите, и в итоге хрщики потом охуевают, когда приходят типв которые знают все современные фреймворки, все на тренде, но при этом базы языка не знают , а по тому даже елементарные операции за рамками фреймов сразу бегут гуглить на стаке
@@akovalevv Удачи тебе написать что-то стоящие на чистом js
@@momon5994 так а при чем тут чистый js? Человек условно говорит что фундаментальные знания куда важнее чем знания конкретных инструментов. И он прав
Не совсем корректный пример для оператора доступа.
user.admin1?.id - так более наглядно показать работу опеаратора, так как admin1 действительно является undefined, а прочитать значение из undefined - невозможно, а несуществующие конечные свойства, они и так будут undefined и не будут вызывать исключения, чего нельзя сказать о проможеуточных свойствах.
А вообще, спасибо за материал, очень интересно ) js начинает на ts смахивать )
*Я* : Пытаюсь привыкнуть к EcmaScript 8
*Что нового в JavaScript, новый стандарт ES2020/ES11*
*Я* : Да ёмаё
ахаха
@@SuprunAlexey )
Самый главной вопрос этих новых плюшек не раскрыт! Какая у них сейчас поддержка браузерами, версии, какая версия ноды поддерживает уже, bable уже умеет их транспилировать хотя бы на es6.? Есть ли полифилы?
medium.com/@nodejs/node-js-version-14-available-now-8170d384567e
В 14 ноде есть ?? и .?. Всё остальное, кроме await import, по большей части косметика, которую до этого и так каждый сам себе приделывал.
Спасибо, круто 👍
Случайно открыл видео трехлетней давности, а потом это. Рост автора ощутим по голосу и ритму
Ber serker прогресс конечно есть, но ещё работать и работать
@@SuprunAlexey Зачем так скромничать? Я подписан на тучу каналов об IT, а инфа о новом ES 11 есть только здесь... Сильно)
Федя Минов просто нет предела совершенству, да и сам понимаю что надо проработать качество видео, дикцию, текст видео и тд, так что впереди ещё много работы:)
7:48 если даже писать users.admin.role не будет вылезать ошибка так как у объекта users существует свойство admin. Optional chaining пишется после свойства которое возможно не существует, т.е в данном случае мы подстраховываем от возможного отсутствия свойства admin, а не role.
то есть правильно будет users.admin.role? , и если role нет то вернёт undefined ... ?
@@alexd2133 думаю наоборот, users?.admin?.roles, но не проверял
@@alexd2133 Если нужно проверить наличие поля admin внутри users, то пишешь users?.admin
дальше соответственно: users?.admin?.vse?.chto?.ugodno
Спасибо, было интересно
Это хорошо
Не совсем корректный пример по оператору опциональной последовательности (правильнее его называть null safe оператор), тут скорее правильным примером было бы такое обращение - users.userA?.id, когда userA == null || undefined, в таком случае не будет ошибки "cannot read property of undefined/null", а просто выполнение прекратиться на userA и в переменную попадёт undefined без исключения, которое нужно было бы обрабатывать, либо которое бы сломало выполнение.
Я тоже про это хотел написать) Никакой ошибки там не будет и вернёт undefined с ? или без
Это элвис-оператор)
Спасибо большое;)
Оператор опциональной последовательности очень удобная штука, всегда использую. Кстати, даже функции можно вызывать опционально, myFunction?.()
Нет, я ошибся, это синтаксис Babel, а не нативный JS.
Очень удобная, согласен
Промисы топ вещь
Null можно было раньше и проверять командой, а так есть полезные функции, thx for information 👍👏
+ с импортами полезно, но если рассматривать стаки MEAN или MERN то лучше использовать require('...')
Спасибо 😊
Топ
Спасибо
Прокрастинация
Если учишь JS +- полгода, то как все это нагнать? Ведь пока дойдешь до более-менее нормального уровня, появится ещё множество нового; пока учишь новое -- появляется ещё. Есть ли вообще смысл в этой гонке?
Оно не так часто появляется
Решать вам
Забей болт. Просто двигайся вперед в выбранном стеке. Вышло обновление ТВОЕГО фреймворка - прочитал релизноутс, если что-то существенное - обновился, если фигня какая-то - продолжай дальше лепить свой проект. На ранних этапах тебе не гнаться за всем нужно, а получить крепкую базу. Все хоть и меняется, но не настолько существенно, что твои знания годичной давности перестают быть актуальными.
@@Maiq-The_Liar спасибо.
"более-менее нормального уровнь" это не знание конкретных языков/фреймворков, а понимание фундаментальных основ. Так что если разработчик достиг "нормального уровня" то даже сменив язык он достаточно быстро выйдет на предыдущую производительность. Про смену версии языка/фрейма тут можно и не говорить
Мне кажется перегибаешь насчёт того, что не зная новую версию фреймворка или 3,5 новые фичи нового стандарта ECMA ты прям выпадешь из обоймы) Всё это учится на ходу по мере того, как с этим сталкиваешься
Ты не выпадаешь но остаёшься позади
@@SuprunAlexey в основном на любом проекте все нововведения получаются только на проекте с нуля. Ввести даже новую версию какой-то либы в легаси проекте может быть очень накладно. Ну понятно, что изучать новое надо всегда, просто для общего развития и квалификации, неизвестно куда жизнь завтра закинет.
?. это просто охуенно, спасибо большое за это
Боже, зачем я это смотрю если я пишу на C++?
Интересно ведь
😂
😂👍
@@SuprunAlexey да
я тоже пишу на С++. но веб морды для своих поделок приходится писать на яваскрипте. так что это полезно
Так bigint можно в ноде было юзать еще в том году. MathAll - это регулярка с флагам g, ?. и ?? - нужен, но лучше бы еще таки сделали перегрузку операторов. Всё остальное делается одной строчкой кода. Ничего нового особо не сделали, я бы не сказал, что js такой быстрый, что моргнул и твои знания уже устарели. Пора выключать хипсторов, js - это уже такое неторопливое легаси. Прокинуть int_64 - это конечно здорово, но нужны нативные реализации BigDelimal, когда они их родят?
Хз, посмотрим
как ты себе представляешь перегрузку с динамической типизацией?
Пасибо
То самое чувство когда учишь js по книжке а там ES6, а тут уже ES11, мне плакать хочется.......
А потом смотришь вакансии и видишь что в 9 из 10 нужно ес5/ес6 и вытираешь слезы. А в той 10 вакансии просят либо ес7 либо jquery.
Спасибо за видос, но... биг инт не раскрыт, условное обращение к свойству это вообще стыд. В какой стадии все эти фичи в плане имплементации? Что по поддержке браузерной / Babel? Вступительная часть в контексте ролика - бред. Причём тут фреймворки - вообще не ясно. Фичи фреймворков существуют практически отдельно от фич языка. Самая тесная связь между фичами для конечного разработчика это, наверное, методы массивов map/filter/some/every/reduce. Даже когда фичи попадают на финальную стадию и оказываются в стандарте языка, до их использования в проде проходит ещё не мало времени. 10 командам из 10 будет ближайшие годы будет пофиг пользуешься ли условным обращением к свойству из ес2020 или нет. Потолок с которым желательно быть хотя бы знакомым это ес8. А если где то и будут требовать большего, то на полное ознакомление не уйдёт больше часа. Не нагоняйте тоски на ещё не окрепших «коллег».
3:48
Где-то ангелы кричат: "прости, прощай..."
Ага
Нда, довольно коряво рассказано, ну а в пункте 5, как уже указали ниже - вообще не продемонстрирована новая возможность, а приведён пример который точно также отработал бы и без "?."
Может быть просто проверка на внимательность зрителей :-)
promiseAllSettled🤤🤤🤤
Каеф
Начал изучать JavaScript 3 дня назад, а уже обнова в языке *0*
Учите все так же, до этого дойдёте
Там сейчас особо ничего нового нет. Изменение языка замедляется под грузом написанного на нём. В QuickJs Беллард сделал себе и перегрузки, и либу с BigDecimal, до комитета это не знаю когда дойдет, так и будут все считать на тормозных либах, где bigdecimal будет в виде строки и с методами типа a.add(b).multiply(c).divide(d);
Смотрю, что начали брать фишки от старших братьев "?." и "??" давно есть с C#, так держать!
Ну а как иначе
Так-то JS постарше C# будет :)
?? даже в PHP уже есть 😁
Спасибо
Давно пора все языки слить в один. А то понавыдумывают всякой хрени, (типа новое, крутое) а потом друг у друга тырят фичи и в итоге всё становится почти одинаковым. Так нахрена огород городить? ДАЁШЬ В МАССЫ ОДИН ЯЗЫК НА ВСЕ СЛУЧАИ ЖИЗНИ! :-)
А я js собрался учить.. Да пока я одно учу, другое появится.. И то, что я учу, актуальность потеряет...
Ничего страшного и то что появится выучите
@@ekaterinaregard8040 по 16/7 долго не поработаешь, через месяц, максимум два начнутся проблемы. И отдача все равно снизится.
Прям милисекунды монтируешь, и такое ощущение что с книжки читаешь не вдыхая. Не мешало бы секундные паузы, хотя бы между пунктами!
Миллисекунды монтирую - это как?
@@SuprunAlexey склеиваешь кадры. Когда есть пауза между приложениями, информация лучше воспринимается.
Js сложна
Никто и не говорил что будет легко
js сам по себе - очень простой язык. Надо только вызубрить неявные преобразования, въехать в event loop, async/await, свистопляски с let и this, функции-генераторы (которые обычно не нужны). И всё. Остальное - это всякие обвязки вокруг key[value]. По api и всяким методам встроенных объектов - mdn в помощь.
glogalTHIS ?? globalTHIS => globalTHIS
Как-то сумбурно... Зачем так торопиться?
Напишите в каком моменте я торопился?
@@SuprunAlexey
На протяжении всего ролика...
Это когда рекламу записывают, пытаются сэкономить каждую секунду, а на RUclips всё наоборот - чем длиннее видео, тем больше денег...
Victor Mog кто вам сказал что чем длиннее видео тем больше денег?
@@SuprunAlexey
Суть-то не в этом... Но, возможно, Вы не пользуетесь монетизацией...
@@victormog пользуюсь
Из полезного для меня только доступ .admin?.id
Спасибо!
тоже пользовался этой фичей, но злоупотреблять ею нельзя. Полезно, когда данные получаешь асинхронно, чтобы попытка достучаться до свойства не валила приложуху, когда данные ещё не пришли с бэка
да @_@ ****( уже ES11 есть!!
Ага
каждый год выходит новая версия стандарта
Много неправильных формулировок, мало подробностей. Автор копай глубже и проверяй текст сценария ролика
Glogal this. Mmm
Mmmmm