📌 Друзья, в телеграмме у нас есть отдельный чат, где вы можете задать вопрос по фронтенд-разработке и вам постараются помочь: 💬 t.me/friendlyFrontendChat Если вам это интересно, присоединяйтесь, задавайте вопросы и помогайте другим 🙂
Александр, спасибо за разъяснение темы. Прохожу обучение в коробке и у вас намного более понятная подача) Подскажите, я правильно понимаю, что в js необязательно использовать ; в конце строки? Просто до этого изучал java и там оно нужно, а тут кто как пишет)
Не обязательно. Я не использую, т. к. мне кажется, что без них код выглядит чище. Есть единственный сценарий, при котором скрипт упадет с ошибкой, если не будет точки с запятой: // какая-то инструкция без ";" в конце [массив].какойТоМетод() И вот JS-движок на [ упадет. В хорошем коде таких ситуаций быть не должно, т. к. выражение [массив] лучше выносить в отдельную переменную с говорящим именем.
Большое спасибо за контент!!! Скажите пожалуйста, почему на 20:00, в const areArraysEqual = (array1, array2) вы используете (array1, array2) а не (arr1, arr2)
Потому что areArraysEqual - это функция, а array1 и array2 - её параметры. В рамках тела функции мы оперируем именно параметрами функции, чтобы в эту функцию при вызове можно было передать любые массивы. Иначе, если бы функция не имела параметров и в теле использовала бы arr1 и arr2, то функция работала бы только для текущих массивов и всё. В общем, так мы функцию делаем универсальной.
Нейтрально отношусь. Способом пользовался, но про его влияние на перформанс не знаю. Могут лишь предположить, что в том же lodash функция глубокого сравнения будет отрабатывать быстрее, но так как в коммерческой разработке на фронте редко приходится сравнивать объекты и массивы, то применять JSON для этих целей в пет-проектах - благое дело.
Привет, спсибо за урок! Почему в 20:33 при сравнении значение length используеться строгий оператор сравнения? свойство обьектов/массивов length же как я понимаю может хранить в себе только тип данных number
Привет! Использовать нестрогое сравнение в целом считается плохой практикой, поэтому лучше привыкать всегда писать три знака при проверке, даже если 100% уверен, что сравниваем данные одного типа.
Вооот, еще хотелось бы узнать зачем конкретно в этом примере используються const value1,2. Можно ли писать for(const key in arr1){ if(arr1[key] !== arr2[key]){ return false } } А точнее почему ты не использовал такую конструкцию?
Потому что дополнительные переменные с говорящими названиями упрощают чтение кода. Многосоставные инструкции в круглых скобках if частенько полезно выносить в переменные.
Случайно, по привычке использовал его вместо console.log. В работе использую только этот метод для логирования чего-либо в консоль. В чем его преимущество над log - планировал рассказать в шортсе. Забавное совпадение, но этот шортс как раз выйдет на канале через полтора часа, не пропусти 😅
А в задачке на сравнение массивов, не проще привести оба массива к строке и сравнить строки ? Тогда в этом случае это будет как глубокое сравнение, потому что массивы приведутся к строкам одинаково ? arr1.toString() === arr2.toString()
Весьма ненадёжно. Так будет работать только с примитивами в качестве элементов массива. К примеру, выражение : [1, 2, 3].toString() === [1, [2, 3]].toString() Покажет true, что не является корректным.
📌 Друзья, в телеграмме у нас есть отдельный чат, где вы можете задать вопрос по фронтенд-разработке и вам постараются помочь:
💬 t.me/friendlyFrontendChat
Если вам это интересно, присоединяйтесь, задавайте вопросы и помогайте другим 🙂
Комментарий в поддержку этого замечательного канала, очень полезный материал доступным языком. Спасибо, Александр!!
Пипец, какой же удобный JS оказывается. Александр, огромное спасибо вам за уроки
то, что вьі имеете в виду есть во всех ЯП. Все фишки везде внедряются.
да, особенно функции-конструкторы
очень люблю ваши видео. большое спасибо за понятное объяснение
Александр - красава!
Коммент в поддержку, спасибо за урок!
Большое спасибо за очередной классный видос!
C двух устройств фармлю вам лайки. С телефона ознакомился с уроком и с компьютера повторил)
А я смотрю ты взял тенденцию на крутые кофты. Одобряю!
Спасибо за видео!
Лайк, ждём следующее видео
Лайк, спасибо за видосик!
спасибо за хорошее обьясние
Спасибо!
Александр, спасибо за разъяснение темы. Прохожу обучение в коробке и у вас намного более понятная подача)
Подскажите, я правильно понимаю, что в js необязательно использовать ; в конце строки? Просто до этого изучал java и там оно нужно, а тут кто как пишет)
Не обязательно. Я не использую, т. к. мне кажется, что без них код выглядит чище.
Есть единственный сценарий, при котором скрипт упадет с ошибкой, если не будет точки с запятой:
// какая-то инструкция без ";" в конце
[массив].какойТоМетод()
И вот JS-движок на [ упадет.
В хорошем коде таких ситуаций быть не должно, т. к. выражение [массив] лучше выносить в отдельную переменную с говорящим именем.
Большое спасибо за контент!!!
Скажите пожалуйста, почему на 20:00, в const areArraysEqual = (array1, array2) вы используете (array1, array2) а не (arr1, arr2)
Потому что areArraysEqual - это функция, а array1 и array2 - её параметры.
В рамках тела функции мы оперируем именно параметрами функции, чтобы в эту функцию при вызове можно было передать любые массивы.
Иначе, если бы функция не имела параметров и в теле использовала бы arr1 и arr2, то функция работала бы только для текущих массивов и всё.
В общем, так мы функцию делаем универсальной.
@@AleksanderLamkov Спасибо большое за ответ!!!
Здравствуйте Александр. Как вы относитесь к сравниванию объектов и массивов с помощью JSON.stringify()? Или это слишком дорогая операция?
Нейтрально отношусь. Способом пользовался, но про его влияние на перформанс не знаю. Могут лишь предположить, что в том же lodash функция глубокого сравнения будет отрабатывать быстрее, но так как в коммерческой разработке на фронте редко приходится сравнивать объекты и массивы, то применять JSON для этих целей в пет-проектах - благое дело.
Футболка 👍
Здравствуйте! Спасибо за курсы! Будет курс по ООП? Или это используется не очень часто в JS?
Поверхностно. Про классы есть в курсе информация. И в дальнейшем логику к UI-компонентам буду на классах показывать.
Привет, спсибо за урок! Почему в 20:33 при сравнении значение length используеться строгий оператор сравнения? свойство обьектов/массивов length же как я понимаю может хранить в себе только тип данных number
Привет! Использовать нестрогое сравнение в целом считается плохой практикой, поэтому лучше привыкать всегда писать три знака при проверке, даже если 100% уверен, что сравниваем данные одного типа.
Вооот, еще хотелось бы узнать зачем конкретно в этом примере используються const value1,2. Можно ли писать
for(const key in arr1){
if(arr1[key] !== arr2[key]){
return false
}
}
А точнее почему ты не использовал такую конструкцию?
а нет, блин надо смотреть весь урок перед написанием коммента, ты там потом прелдагаешь доработать функцию как раньше с обьектами..переменные нужны
Потому что дополнительные переменные с говорящими названиями упрощают чтение кода. Многосоставные инструкции в круглых скобках if частенько полезно выносить в переменные.
Даже если бы эти переменные не были переиспользованы неоднократно, я бы всё равно предпочел их оставить, чтобы код было читать проще 🙃
После js, дальше будут уроки по TS и react?
Пока рано об этом говорить. Буду ещё мастер-классы с JS делать.
А примерно с какого урока ты перейдешь на js в браузере?
Примерно с 24-го. Очень уж много тем в базовом джаваскрипте.
я проспала использование метода .debug? откуда он взялся..
Случайно, по привычке использовал его вместо console.log.
В работе использую только этот метод для логирования чего-либо в консоль.
В чем его преимущество над log - планировал рассказать в шортсе.
Забавное совпадение, но этот шортс как раз выйдет на канале через полтора часа, не пропусти 😅
С этим прррроггграмммиррованниееем йааа вижжжжуууу ддввааа монитттора. Без пол литра точно не обойтись🫠🥴🥴
ох, самая не любимая тема.. погнали :D
А в задачке на сравнение массивов, не проще привести оба массива к строке и сравнить строки ? Тогда в этом случае это будет как глубокое сравнение, потому что массивы приведутся к строкам одинаково ?
arr1.toString() === arr2.toString()
Весьма ненадёжно.
Так будет работать только с примитивами в качестве элементов массива.
К примеру, выражение :
[1, 2, 3].toString() === [1, [2, 3]].toString()
Покажет true, что не является корректным.
@@AleksanderLamkov понял, спасибо!