@@vitaliylufter8765 только что проверил у с правильным присвоением у меня в 4 раза быстрее! по ходу не особо важно что к чему присваиваем если это простые числа в соседнем скопе! принцип верен!
Аргумент-объект - неоднозначная вещь. Если в функции малое количество аргументов, то лучше применять JSDoc. И IDE вам подскажет чего функция от вас ждёт. Самодельные объекты тоже надо документировать, а иначе откуда другим программистам узнать что в объекте должно быть? И не переданные значения при использовании объекта разве обрабатывать не надо? С другой стороны есть случаи, когда объекты в качестве аргументов - лучший выбор: обработчики событий, манипуляции с DOM и т.п. Есть ещё случай, когда в функции очень много аргументов. И может показаться, что объект лучше. Но если в вашей функции аргументов больше 5, возможно, она делает слишком много. В общем, как везде, о методе знать нужно, но делать все функции принимающими только объекты тоже спешить не стоит.
Хорошее видео. Ошибка только в последнем примере, правильный обмен переменных это let t = x; x = y; y = t; // y = x нельзя, так как в x уже содержится y
@@pupizoid100 называть переменную можно как угодно. Хоть какой-то буквой d, и это ничего означать не будет. А t это точно не time, t логично рассматривать как tmp, temporary = временная переменная.
@@moskalenko2k24 Понятно. Спасибо. Я проверил как сказали let t = x; x = y; y = t; Получилось на 3 секунды дольше, странно. Чем let t = x; x = y; y = x
@@pupizoid100 так а что странного, второй код неправильный = он не решает задачу обмена переменных, в итоге там переменная t не использует и похоже интерпретатор JS это понимает и игнорирует ненужную переменную.
Как всегда жииирный + от меня. Есть комент по #1. Единственны + в передаче обьекта как параметра, это ничего извне менять не надо.супер актуально в больших проектах.
Ох сколько ночей я плакал с этими а=b, b=t, t=a, решая задачи JS... А спред оператор прям вообще конфетка! И удобно читабелен. Спасибо за мастхэвное видео!
#1 - во всём нужна золотая середина. Иногда удобно передать объект, но приходится следить за его структурой. Чаще же, удобнее передать 2-3 параметра и описать их через JSDoc.
Есть еще третий способ поменять местами числовые переменные, самый долгий, но без использования третей переменной. ) Кстати второй способ на больших итерациях почти одинаково по времени с первым, но чаще проигрывает не на много.
@@kirillzhosul на видео используется не горячие клавиши, а мышь - при изменении размера одного окна сразу меняется другое. Про Win+стрелки я знаю - это не оно.
Умеет. Берёшь окно мышкой и перетаскиваешь в правый или левый конец экрана. Окно само у вас занимает половину экрана. А на другой половине экрана появляется выбор другово окна. Выбираете окно, и регулируете их ширину на стыке двух окон.
В четвертом примере за выбрасывание undefined по рукам бить надо. По-хорошому там надо писать try catch с логированием ошибок. Насчёт 9го способа не соглашусь, что нужно писать цикл. Первый вариант гораздо лучше, так как более читабелен, а погоня за 5ms может привести к очень плохим последствиям. В высококровном программировании джунам не стоит париться за байтики.
Очень познавательный урок, но не понял где были коды, и куда их вставлять. Пришел на работу, попросили девятый код ввести но как оказалось девятого кода нет если мы считаем с нуля...
5:33 а что мешало вывести в консоль сразу объект? Он бы вообще имел в консоли раскрывающиеся списки и просмотреть его было бы удобнее чем любую строку. Зачем это чесание уха пяткой?
Пример #9: при увеличении колличества итераций цикла на x10: ex 1: 142.493896484375 ms, ex 2: 94.2109375 ms. При ста миллионах: ex 1: 412.15673828125 ms, ex 2: 425.421142578125 ms (второй алгоритм показывает медленную работу по сравнению с первым. А при миллиарде: ex 1: 3575.089111328125 ms, ex 2: 3840.5859375 ms
Кодов? Может типичных для жиэса решений? Задачи уровня 7-8 куи на кодварсах, некоторые из которых ну очень странные, особенно с объектом Number который при его использовании превращает примитив в объект... Это уровень даже не трейни
первый же пример,- чтобы понять, что нужно передавать в функцию, просто прочитать сигнатуру не достаточно, нужно вычитывать весь код функции, и хорошо когда она из 2 строк, а не 450 к примеру, а если таких функйий 150+ ...это лютый треш когда такой код нужно прочитать-разобраться...дальше не смотрел...
@@alexeyilin1527 В стрелочных функциях отсутствует половина функционала обычных. На то есть причины. Они и создавались чтоб использовать их в небольших выражениях.
Как же бесит, в одном месте пробел не поставит, в другом поставит.. (arg, null, 2) (data : [...]). Это так на глаз бросается и думаешь "делается на от...".
В последнем примере:
y=t;
должно так быть.
Да, но суть в друом.
👍👍👍
@@vitaliylufter8765 только что проверил у с правильным присвоением у меня в 4 раза быстрее!
по ходу не особо важно что к чему присваиваем если это простые числа в соседнем скопе! принцип верен!
и в этом примере, еще быстрей пройдет замена арифметической операцией:
a = a + b;
b = a - b;
a = a - b;
Четвертый мастхэв - деструктиризация данных.
Пятый - спред оператор )
Спасибо за видео! Действительно мастхев! )
Аргумент-объект - неоднозначная вещь. Если в функции малое количество аргументов, то лучше применять JSDoc. И IDE вам подскажет чего функция от вас ждёт. Самодельные объекты тоже надо документировать, а иначе откуда другим программистам узнать что в объекте должно быть? И не переданные значения при использовании объекта разве обрабатывать не надо?
С другой стороны есть случаи, когда объекты в качестве аргументов - лучший выбор: обработчики событий, манипуляции с DOM и т.п.
Есть ещё случай, когда в функции очень много аргументов. И может показаться, что объект лучше. Но если в вашей функции аргументов больше 5, возможно, она делает слишком много.
В общем, как везде, о методе знать нужно, но делать все функции принимающими только объекты тоже спешить не стоит.
Хорошее видео. Ошибка только в последнем примере, правильный обмен переменных это
let t = x;
x = y;
y = t; // y = x нельзя, так как в x уже содержится y
А вместо t может быть любое обозначение? Или t означает time время?
@@pupizoid100 называть переменную можно как угодно. Хоть какой-то буквой d, и это ничего означать не будет. А t это точно не time, t логично рассматривать как tmp, temporary = временная переменная.
@@moskalenko2k24 Понятно. Спасибо. Я проверил как сказали
let t = x;
x = y;
y = t; Получилось на 3 секунды дольше, странно. Чем
let t = x;
x = y;
y = x
@@pupizoid100 так а что странного, второй код неправильный = он не решает задачу обмена переменных, в итоге там переменная t не использует и похоже интерпретатор JS это понимает и игнорирует ненужную переменную.
@@moskalenko2k24 А вот почему он так быстро обработал. Теперь понял до конца
ждем "9 JavaScript кодов Must Have для мидлов")
Согласен, для мидлов всегда мало контента, было бы неплохо
Как всегда жииирный + от меня.
Есть комент по #1. Единственны + в передаче обьекта как параметра, это ничего извне менять не надо.супер актуально в больших проектах.
Спасибо! Очень классно всё объяснили. Буду применять!
it was really useful for me, thank you for content
Ох сколько ночей я плакал с этими а=b, b=t, t=a, решая задачи JS... А спред оператор прям вообще конфетка! И удобно читабелен. Спасибо за мастхэвное видео!
Потамуста ты осень умний. Это весь такх слозна - переставить цве переменых мистами. Ас нескалько насей не спал
@@vatakiller *здесь мем Петросяна*
@@jinke5935 и мемасы, и питрасяна любис. Настаясий праграмист, а не вайтисник там кахой та
Да, нужен разбор генераторов с примерами применения.
Спасибо за полезный контент!
Супер, спасибо, хорошо зашло, укрепил знания, что то новое. Дзякуй вялiкi !!!
корисно, як завжди, дякую
Спасибо, полезно!)
Отличные сниппеты! В конце y=t =)
встроенный таймер прям круто, спасибо
Алекс, oбaжаю твои видосы, но.. 9 JS кодов 😄
👍🏿
Потрясающе! Очень полезный материал
ждем урок по функциям генераторам )
Поддерживаю
Лучше по конкретным примерам где они удобнее чем любой другой функционал
Круто, спасибо!
PS: Можно ускорить написание `console.log()` в vscode. Если начинать писать вместо `console`, ключевое слово `log`
аналогично в вебшторме, но потом ещё нажать таб
Александр знает про log. Видимо по привычке пишет console. Либо чтобы побольше комментариев написали по этому поводу для продвижения канала))
За console.time - спасибо :)) класс
Круто, такие уроки важны
Спасибо, ждём генераторы!
Спасибо! Очень интересное видео👍
Спасибо, как всегда оочень полезно!
Вау. Это так хруто. Я хацу бытьц таким зе умным хак и ти. Этех знаней мне типерь хватец на всю кареру. Узе саставил резюмэ и атправил в гоогле
Спасибо, классное видео.
Спс... Как всегда на высоте 👍
Spasibo!
#1 - во всём нужна золотая середина. Иногда удобно передать объект, но приходится следить за его структурой. Чаще же, удобнее передать 2-3 параметра и описать их через JSDoc.
спасибо
Отличные примеры! 👍🏻
Спасибо, полезное видео!
#1 с объектом arg тоже проблема - нужно знать, какие атрибуты он должен содержать. Т.е. все идет к классам, интерфейсам и нотациям, хинтингу ...
Спасибо, познавательно
супер!!! спасибо )
y = t
Вроде ж так надо
И по генераторам да, интересно
ты крут!
хороший энтузиазм!
#9
Разве там не "y = t" должно быть?
да
Я бы посоветовал еще использовать perfomance.now() для измерения времени выполнения и не только.
Деструктивно из массива ещё можно по другому.
const a = ['Name', 33];
const [name, age] = a;
// name - 'Name'
// age - 33
🙏🏼
круто !)
Спасибо!
21:07 А может надо на 89 строке y=t ?
Но вообще: автору респект!
1 пример, я обычно для этого деструктуризацию использую , суть та же
Код на букву "Г" - это Год) Что с английского переводится "Бог")) Так что я не г**нокодю, а люто бешено божу)
Крутяк!
Number("string") ???
Так консоль в браузере сама красиво и удобно форматируето объект, не нужно даже с JSON играть
7, 8 огонь.
Есть еще третий способ поменять местами числовые переменные, самый долгий, но без использования третей переменной. )
Кстати второй способ на больших итерациях почти одинаково по времени с первым, но чаще проигрывает не на много.
0:40 Александр, какой программой вы пользуетесь, чтобы выравнивать окна? Win10 по умолчанию так не умеет.
Win+стрелки не хватает?
@@kirillzhosul на видео используется не горячие клавиши, а мышь - при изменении размера одного окна сразу меняется другое. Про Win+стрелки я знаю - это не оно.
@@kirillzhosul хотя может и оно, но, вроде как, на видео только мышью
@@yummybunny7351 я в том плане что обычно стрелок хватает, делить можно на 4 части экран(не 4 в ряд, в квадрат(2 сверху, 2 снизу))
Умеет. Берёшь окно мышкой и перетаскиваешь в правый или левый конец экрана. Окно само у вас занимает половину экрана. А на другой половине экрана появляется выбор другово окна. Выбираете окно, и регулируете их ширину на стыке двух окон.
Почти все новое
А зачем в последней функции let t = x? Подскажите плиз.
Чтобы сохранить предыдущее значение из икса. Иначе после того, как ты запишешь в x значение из y, потеряется доступ к стаорому значнию х.
На видео - опечатка.
Как перевести must have на русский?
В четвертом примере за выбрасывание undefined по рукам бить надо. По-хорошому там надо писать try catch с логированием ошибок.
Насчёт 9го способа не соглашусь, что нужно писать цикл. Первый вариант гораздо лучше, так как более читабелен, а погоня за 5ms может привести к очень плохим последствиям.
В высококровном программировании джунам не стоит париться за байтики.
Всегда отличные уроки. Спасибо большое, но пожалуйста, не говорите "маст хейв", это слух режет. Правильно говорить "маст хэв"
Очень познавательный урок, но не понял где были коды, и куда их вставлять.
Пришел на работу, попросили девятый код ввести но как оказалось девятого кода нет если мы считаем с нуля...
5:33 а что мешало вывести в консоль сразу объект? Он бы вообще имел в консоли раскрывающиеся списки и просмотреть его было бы удобнее чем любую строку. Зачем это чесание уха пяткой?
Ноль дизлайков хорошая работа Олег!(я знаю что автора зовут Александр)
Пример #9: при увеличении колличества итераций цикла на x10: ex 1: 142.493896484375 ms, ex 2: 94.2109375 ms. При ста миллионах: ex 1: 412.15673828125 ms, ex 2: 425.421142578125 ms (второй алгоритм показывает медленную работу по сравнению с первым. А при миллиарде: ex 1: 3575.089111328125 ms, ex 2: 3840.5859375 ms
Кодов? Может типичных для жиэса решений? Задачи уровня 7-8 куи на кодварсах, некоторые из которых ну очень странные, особенно с объектом Number который при его использовании превращает примитив в объект... Это уровень даже не трейни
Да в 4 пункте поняли, что украли из опционалов языка swift походу логику, только там возвращается nil, типа как в PHP null.))
У меня есть очень большой вопрос=))) по поводу кликов!!!
01:15
3:40
5:30
7:30
Classic'a Janr'a
Зачем такая сложность в 5 совете?! Можно сделать [a,b] = .....
посмотрел в коменты что бы наити это
первый же пример,- чтобы понять, что нужно передавать в функцию, просто прочитать сигнатуру не достаточно, нужно вычитывать весь код функции, и хорошо когда она из 2 строк, а не 450 к примеру, а если таких функйий 150+ ...это лютый треш когда такой код нужно прочитать-разобраться...дальше не смотрел...
Не пиши пожалуйста функции в 450 строк, мне потом больно это читать, опыт подсказывает, что одного экрана (около 40 строк) вполне достаточно)
@@aiahz чукча не писатель, чукча - читатель
@@user-of1px9tj3c если твой код млжешь прочитать только ты, то твой код говно.
2:53 чё то дартом запахло
Капец ты дышишь, как Дарт Вейдер)
Второй)
Что за фетиш на слово function, никогда не использовал)
Это не фетиш, а нормальное определение функций. Кроме существенной технической разницы их ещё и читать удобнее в стриме кода.
@@eduardkolesnik5819 а стрелочные функции не норм?)
@@alexeyilin1527 В стрелочных функциях отсутствует половина функционала обычных. На то есть причины. Они и создавались чтоб использовать их в небольших выражениях.
Я ни те, ни те функции не использую. Циклы не нужны. Массивы, объекты тоже. Принципиально.
@@XTANCE как это, принципиально?)
Первый)
@catsapp animation нулевым был автор
Как же бесит, в одном месте пробел не поставит, в другом поставит.. (arg, null, 2) (data : [...]). Это так на глаз бросается и думаешь "делается на от...".
Очень сочувствую тем кто смотрит эти видео и пытается по ним учиться
В чем проблема?
ждем урок по функциям генераторам )