Anonymous
Что обычно спрашивают на собсесах Js?
кроме ес6, замыкания
Evgeniy 🍀
сходи и узнаешь :3
Igor
Делаю запрос, в response приходит текст, но промисы валятся на ошибке, как его оттуда достать? Все перепробовал, так и не смог вытащить
Viacheslav!
Привет. Есть разовая работа. Material design + несложный js - перенести элементы в другие места + сортированка данных в таблице (js). го в лс если интересно
Alimossim
.bg {
/* The image used */
background-image: url("/wa-data/public/site/img/Image6.png");
/* Full height */
/* Center and scale the image nicely */
background-position: center;
background-repeat: no-repeat;
background-size: cover;
}
Alimossim
Если не задаю фиксированную высоту не работает
Alimossim
как сделать так чтобы высота автоматически применялась при этом не ломаю пропорции и не обрезая кртинку
Дмитрий
Здравствуйте, товарищи! Продолжаю осмыслять правила линтера. Остановился на no-param-reassign: https://eslint.org/docs/rules/no-param-reassign Как, по-хорошему, следует работать с методами массивов (forEach, map и т.д.), оставаясь в рамках этого правила?
Пример:
document.querySelectorAll('.controlBlock').forEach((currentElement) => {
currentElement.style.display = '';
});
Конечно, можно сделать так:
document.querySelectorAll('.controlBlock').forEach((currentElement) => {
const { style } = currentElement;
style.display = '';
});
Но разве это не тупо?
Deleted
Roman
Deleted
которое еще придумали в 80е годы
Roman
э... ну какбе такое дело
Deleted
это нарушает семантику использования параметров
Roman
почемуйта?
Deleted
почемуйта?
семантика параметра - это данные поданные на вход
по аналогии с принципом черного ящика
когда мы идем глазами по большой функции мы в местах использования параметров ожидаем что это все те же значения полученные когда была вызвана функция
Roman
Roman
я думал правило нарушает
Roman
да, с этим все понятно =)
Дмитрий
Roman
в чем вопрос?
Roman
то что правило не отлавливает деструктуризацию - это баг
Дмитрий
в чем вопрос?
Как, по-хорошему, следует работать с методами массивов (forEach, map и т.д.), оставаясь в рамках этого правила?
Roman
аа
Roman
тебе в иммутабельность
Roman
надо создавать копии, модифицировать их и возвращать
Deleted
Roman
^^ согласен
Roman
если в проекте принята иммутабельность - это нормальное линт-правило, чтоб кто-то случайно не мутировал
Дмитрий
Deleted
ну и также в вашем примере вы мутируете DOM
изолировать себя от мутации DOM'a можно только если использовать фреймворки по типу React VUE
Deleted
Сам по себе DOM построен на мутациях
Roman
^^ опять согласен =) не успеваю с ответами
Deleted
😁
Andrey
свой виртуал дом и все дела 😁
Дмитрий
Andrey
полно языков транспилирующихся в сабж, при этом с иммутубельными структурами данных из коробки - пурескрипт, эльм, кложаскрипт и т.п. выбирай на вкус. можно при желании посмотреть как там сделаны эффективные датаструкчи. хотя и в иммутабл-жс что-то должно быть наверное
Серёжа
всем привет мужики есть вот такая задача и нужно чтоб ользователь может кликнуть по любому тексту или кругу, он встает в центр и меняется содержимое подложки ниже всех заголовков, фотка как такое реш
Deleted
Ну ОК. А если бы это был не ДОМ, а некий массив неких объектов?
если объекты имеет 1-2 уровня вложености то используют spread операторы чтобы создавать копии
let arr = [{ name: 'John', surname: 'Smith' }, { name: 'Alice', surname: 'Smith' }]
arr = arr.map(
user => ({
...user,
fullName: `${user.name} ${user.surname}`
})
)
если больше - то используют библиотеки для работы с иммутабельными объектами
я чаще всего использую immutability-helper
Deleted
Deleted
мутация значения и мутация ссылки две абсолютно разные вещи
Deleted
все ошибки в основном от мутации значений
мутацию ссылок можно избегать если в этом есть реальная потребность
Deleted
я перезаписываю ссылку на arr
Deleted
оригинальный arr не меняется
Deleted
Roman
операция = не изменяет левую часть
Deleted
разницу между ссылкой и значением понимаешь?
Roman
надо проще объяснять)
Deleted
Притом что мутация значений очень важна
А важность мутации ссылок - зависит от задачи
Дмитрий
Deleted
Deleted
только ты меняешь не в нем, а создаешь новую копию массива где есть это изменение
Deleted
куда эту assign'ить - это уже зависит от задачи)
Дмитрий
Deleted
Создаем изолированные части приложения которые работают с мутабельностью
Deleted
Например я писал на React Native рисовалку для ios android
Deleted
у меня был отдельный компонент который работал с байт массивом imageData
но всю эту логику он полностью скрывал внутри себя
Deleted
ну если грубо то
[1,2,3].slice(0).sort(...)
Deleted
копируешь, сортируешь
Deleted
а если проект маленький - то иммутабельность вам и не нужна
Deleted
там это где?
Deleted
ну так если есть конкретный пример - то давай конкретно разбирать
Deleted
есть вот шкала такая
на одной стороне ты получаешь
простотой в понимании проект, легкий в откладке и отлове ошибок
на другой стороне ты получаешь проект быстро работающий и эффективно использующий память
Deleted
на этой шкале ты выбираешь для себя подходящую точку)
Deleted
для своей задачи
Deleted
иммутабельность это инструмент который позволяет контроллировать сложность проекта, взамен на некоторую долю памяти и времени процессора
Игнат
Вечер добрый, есть идея создать веб приложения с множеством динамических веб форм, начал писать на фласке, но там с динамиком чет тяжко, подскажите пожалуйста какой выбрать вреймворк 😄
Kirill
Ребята, всем привет, такой вопрос:
У меня есть кнопка и на нее навешано событие по классу на клик, потом удаляю этот класс у ней и добавляю новый и хочу реализовать уже другое событие, а оно все равно делает и старое и новое( как быть, подскажите пожалуйста?)
Kirill
спасибо)
Roman
Bakhodir 𝖨̷𝖨̷𝖨̷
Bakhodir 𝖨̷𝖨̷𝖨̷
https://learn.javascript.ru/event-delegation
Roman
кто работал с react-native? можно вообще не работать с xcode? то есть понятно, он нужен для билда, но писать можно в чем-то другом?
Deleted
Deleted
Roman
Deleted