TK
Добрый вечер. Я понял что map это массив,а у меня обьект.Как код исправить?
TK
Александр
Ребят, а зачем мне null в реальной жизни? MDN и null vs undefined читала. В практике обычно или строки или initial number. Когда у меня появляется необходимость использовать null?
Когда нужно например сказать что поле не заполнено, и надо разделять пустую строку и незаполненное поле (например представленное через null). Да и вообще часто используется, странные вопрос у вас однако
Daniil
Object.keys(myObject)/for in/Object.entries
Nata
Добрый вечер. Я понял что map это массив,а у меня обьект.Как код исправить?
если промаппировать объект, то lodash вроде умел красиво
TK
если промаппировать объект, то lodash вроде умел красиво
Спасибо буду гуглить в этих направлениях
Anonymous
Ребят, чот раньше HMR у меня работал без вот этого вот if (module.hot) {...}, а теперь отказывается. Что-то поменялось или я по-другому что-то делаю? Вроде всё как раньше. Подскажите
Nata
Когда нужно например сказать что поле не заполнено, и надо разделять пустую строку и незаполненное поле (например представленное через null). Да и вообще часто используется, странные вопрос у вас однако
да вот я и пытаюсь понять, а когда мне действительно нужно разделять пустую строку от незаполненного. Код не ломается. Что мне это даёт? От чего уберегает?
Александр
да вот я и пытаюсь понять, а когда мне действительно нужно разделять пустую строку от незаполненного. Код не ломается. Что мне это даёт? От чего уберегает?
Когда нужно знать например что поле или никогда не было заполнено или было, но потом значение удалили и осталась пустая строка
Александр
Когда нужно знать например что поле или никогда не было заполнено или было, но потом значение удалили и осталась пустая строка
Реальные случаи, навскидку вот припомнить не могу, но было необходимо мне на практике
Nata
Реальные случаи, навскидку вот припомнить не могу, но было необходимо мне на практике
вот, я пока свои грабли не нашла, а интересно. Если что вспомните — киньте в меня. Спасибо
Sm•ok
Ну пустота и неизвестность это как минимум семантика думаю
Александр
При обновлении данных например, undefined может означать оставить значение поля без изменений, а null или пустая строка соотвественно изменить в то или иное значение
Александр
Вопрос в семантике, как уже заметили выше, отсутствие значения и пустое значение - разные кейсы
Александр
Вы можете спроектировать API где данные различия не будут присутствовать
Александр
Но возможно и обратное
Nata
Ну вот да, я пока вижу только семантическую заглушку для данных, которые пока не хочется задавать. На практике обычно сразу указываю данные по типу [], “”, 0
Nata
null и undefined разные, а вот использование null вместо пустых данных нужного типа это вопрос почему
Александр
Ну вот да, я пока вижу только семантическую заглушку для данных, которые пока не хочется задавать. На практике обычно сразу указываю данные по типу [], “”, 0
Ну вот есть у нас данные загружаемые с сервера, например user, логично же что до того как они будут получены user будет равен null, вы же не зададите его в {}, вот пример где нужен нулл
Sergey
null и undefined разные, а вот использование null вместо пустых данных нужного типа это вопрос почему
undefined это отсутствие ключа или неопределенные данные а null это вполне ожидаемая ситуация, когда данных нет, и логика это предполагает
Александр
Не обязательно, нет данных это скорей undefined, а null это значение, хоть и пустое
Nata
null is an assigned value. It means nothing. undefined typically means a variable has been declared but not defined yet.
Nata
у меня скорее вопрос null vs [], “”, {}
Александр
у меня скорее вопрос null vs [], “”, {}
Зависит от опять же, если у вас скажем есть коллекция объектов, то естественным дефолтным значением будет []
Sm•ok
Запись в бд
Sm•ok
Имя пользователя пустая строка
Sm•ok
И его нет
Александр
Если же у вас единственный объект, 6 может быть пока не загруженный то дефолт естественно в null задать
Sm•ok
1 случай это "" Второй это null
Александр
у меня скорее вопрос null vs [], “”, {}
{} в случае js вообще плохо, как будете проверять на empty?
Александр
Если со списком можно list.length то для {} все сложнее
Sm•ok
_.isEmpty
Или так)(
Александр
_.isEmpty
Ну тянуть лодашь
Looch
Ну тянуть лодашь
он не проверит такое {123:undefined}
Sergey
_.isEmpty
интересно, как будет с enumerable: false?
Александр
интересно, как будет с enumerable: false?
Вот по этому я и сказал что не надо пустой объект как пустое значение использовать ибо проверка в ад превратится
Александр
Это не питон
Александр
он не проверит такое {123:undefined}
А потом гадать как в таких corner cases вести себя будет
Looch
я просто не юзал лоудаш, и стараюсь код писать что он был предсказуемый
Looch
ну и типизация в помошь, хотя конечно в рантайме она не поможет 🙂
Александр
я просто не юзал лоудаш, и стараюсь код писать что он был предсказуемый
Я о том же, не то что бы я против лодаш, но вот такие методы как isEmpty от туда не очень интутитвыны
Nata
Запись в бд
make sense, надо осмыслить насколько мне нужна эта разница. Спасибо
Александр
Осталось выяснить Что скрывается за всеми этими isArrayLike
Александр
Предсказуемость и интуитивность не очень
Александр
ну и типизация в помошь, хотя конечно в рантайме она не поможет 🙂
За типизацию поддержу, мой опыт с flow, а сейчас с ts говорит, что данные инструменты позволяют избежать тонн примитивных ошибок, а при грамотном использовании и глубокой типизации и не очень и очень нетривиальных
Looch
тут сейчас за TS заплюют 😁
Александр
тут сейчас за TS заплюют 😁
Ох не знал ) недавно тут
Александр
Удалить чтоль пока не поздно сообщение
Looch
https://t.me/why_typescript_is_bad
Александр
https://t.me/why_typescript_is_bad
Честно говоря представляю что там. Я не первый день с ним и ступал по граблям, иногда хочется конечно и даже нуждаешься в скажем existansional data types но приходится костылить. Но все равно я останусь тут при своём мнении, что ts спасает от кучи ошибок.
Looch
есть же еще прекрасный f l o w
Александр
есть же еще прекрасный f l o w
Я начинал с него, но ts по ряду причин оказался выше него в моем списке приоритетов, так что в проектах за которые я отвечаю теперь все на нем
Sm•ok
Object.keys(obj).length не проще?
Looch
можно узнать ряд причин?
как минимум вероятность найти тайпинги от стороних либ намного выше на TS
Александр
а почему предпочел не flow? (открываю ящик пандоры, но мне интересно)
Много субъективного =не очень, начиная с поддержки в vscode (кто пытался там с флоу работать тот поймет) и заканчивая тем, что флоу это как бы сбоку бантик, костыль, в итоге язык превращается в непонятную кашу, не понятно на каком языке ты пишешь. Этот Babel и куча плагинов к нему, надо помнить что надо тут добавить скажем rest spread transform plugin и так далее. То есть нельзя сказать что у меня питон 3.6 скажем, тут надо упомянуть что у нас ещё куча трансформаций для неких ecma proposals
Sm•ok
Кстати
Александр
Object.keys(obj).length не проще?
Хз, предпочёл бы не проверять что объект пустой в жс вообще
Sm•ok
Ещё JSON stringify + сравнение на '{}' *supermind*
Александр
Ещё JSON stringify + сравнение на '{}' *supermind*
Кстати этот метод я использовал ´)
Александр
Ещё JSON stringify + сравнение на '{}' *supermind*
Надмозг или нет не знаю, но работает
Sm•ok
Если ещё объект оказался не пустым
Sm•ok
А гигантский
Looch
если уж точно хотите то Object.values(obj).every((value) => yourCustomCheck(value))
Александр
Затратное вроде
У меня было при проверке результата запроса на удаление, редкое действо в моем приложении, так что на произвотельность пофиг.
Sm•ok
Undefined
Looch
Ключ может быть 0, false
тогда Object.entries