Comments 20
Можно выделить только URLSearchParams
, остальное — без комментариев. Очень полезные мелочи — деструктурирующее присваивание и spread-оператор, только не мелочи, и не полезные, а обязательные к использованию. Ну, про обязательные параметры вообще молчу — имхо, я бы гнал "программистов", которые такое практикуют, ссаными тряпкями.
Улыбнуло про пустые объекты — в js и так нормального ооп нету (особенности интерпретации — все, сюрприз, превращается в функциональщину и императивщину).
И да, зачем нужны "массивы с уникальными значениями" если уже есть Set
? Плохой костыль, с учетом того, что дальше мы можем, оперируя памятью (или через консоль, лол, если это незащищенный код на клиенте) запушить туда любые угодные нам значения.
Продолжайте переводить подобный кал, не обращая внимания на то, что переводите. Удачи.
Очень полезные мелочи — деструктурирующее присваивание и spread-оператор, только не мелочи, и не полезные, а обязательные к использованию.
Всегда приятно смотреть на то, как приходит новый программист на ES6, и первым делом подключает lodash, потому что ему видите ли надо пару объектов слить вместе, а руками он не умеет ^_^
Но вообще деструктурирующее присваивание — это «мелкий» сахар, в том плане, что я бы его обязательным не назвал. С ним красивше, но без него тоже читаемо. А вот spread — это «глубокий» сахар, с его помощью сокращаются целые блоки унылого кода по переприсвоению; и читать код от того, кто его просто не знает — иногда очень мучительно.
1) Набирает 10-15+ рейтинга
2) Практически все отрицательные (по отношению к содержимому статьи) комментарии в диких минусах.
При этом всем, в их недавнем посте про консоли в комментах были ссылки на 3 (3, Карл!) поста с практически ИДЕНТИЧНЫМ содержимым.
*негодует*
С isRequired — приём не для прода, но забавный, стоит запомнить, пожалуй (и да, статическая типизация — не панацея, хотя я сам пишу на TypeScript). Остальное… вот кто из более-менее освоившихся в теме этого не знает, скажите на милость (кроме filter(Boolean), которое с непривычки выглядит как адский хак)?
Оператор… значительно
Не устану нести свет людям: это не оператор в его классическом понимании, а синтаксис.
myArray
.map(item => {
//…
})
// Избавляемся от ненужных значений
.filter(Boolean);
связку map и filter можно заменить, на один reduce:
[…].reduce((prev, curr) => {
const tmp = /*cast to boolean*/
return tmp && prev
}, true)
[1,2,3].reduce((acc, cur)=>cur%2?acc.concat([cur*3]):acc, [])
[0,null,1,2,false,3].reduce((acc, cur)=>Boolean(cur)?acc.concat([cur*3]):acc, [])
может просто написал неправильно
хотя так вот короче и понятнее:
[0,null,1,2,false,3].filter(Boolean).map(i=>i*3)
но 2 прогона =(((
в этом смысле итераторы питона лучше =)
Деструктурирующее присваивание и новые имена извлечённых свойств объектовЯ бы ещё добавил что это работает и с массивами.
let arr = [1,2,3,4];
let {0: first, 1: second} = arr;
let arr = [1, 2, 3, 4];
let [first, second] = arr;
чем хуже?
JavaScript: 7 полезных мелочей