RUVDS.com corporate blog
Website development
JavaScript
Comments 19
-4

Можно выделить только URLSearchParams, остальное — без комментариев. Очень полезные мелочи — деструктурирующее присваивание и spread-оператор, только не мелочи, и не полезные, а обязательные к использованию. Ну, про обязательные параметры вообще молчу — имхо, я бы гнал "программистов", которые такое практикуют, ссаными тряпкями.


Улыбнуло про пустые объекты — в js и так нормального ооп нету (особенности интерпретации — все, сюрприз, превращается в функциональщину и императивщину).


И да, зачем нужны "массивы с уникальными значениями" если уже есть Set? Плохой костыль, с учетом того, что дальше мы можем, оперируя памятью (или через консоль, лол, если это незащищенный код на клиенте) запушить туда любые угодные нам значения.


Продолжайте переводить подобный кал, не обращая внимания на то, что переводите. Удачи.

+6
Очень полезные мелочи — деструктурирующее присваивание и spread-оператор, только не мелочи, и не полезные, а обязательные к использованию.

Всегда приятно смотреть на то, как приходит новый программист на ES6, и первым делом подключает lodash, потому что ему видите ли надо пару объектов слить вместе, а руками он не умеет ^_^
Но вообще деструктурирующее присваивание — это «мелкий» сахар, в том плане, что я бы его обязательным не назвал. С ним красивше, но без него тоже читаемо. А вот spread — это «глубокий» сахар, с его помощью сокращаются целые блоки унылого кода по переприсвоению; и читать код от того, кто его просто не знает — иногда очень мучительно.
0
Совершенно с вами согласен. У меня только один вопрос к ru_vds: каким образом подобная чушь, под которой куча гневных комментариев:

1) Набирает 10-15+ рейтинга
2) Практически все отрицательные (по отношению к содержимому статьи) комментарии в диких минусах.

При этом всем, в их недавнем посте про консоли в комментах были ссылки на 3 (3, Карл!) поста с практически ИДЕНТИЧНЫМ содержимым.

*негодует*
0

Вот пока эти переводы набирают 10-15 плюсов рейтинга, ru_vds будет публиковать эти унылые статьи.

0
Если вам не понравилась какая-то публикация, то вы в праве поставить ей минус. Но будет гораздо лучше и полезней для читателей Хабра, если вы пришлёте нам какую-нибудь действительно крутую (по вашему мнению) публикацию, которую мы бы перевели (можно в личку).
-2
Одна половина советов из 2015, за другую вас погонят тряпками из компании
-3
сомневаюсь, что применяют isRequired() на практике. для простой проверки количества параметров проще arguments.length, а для проверки, что в параметре есть что-то осмысленное, нужен как минимум typeof.
+1
Если дошло до isRequired не пора ли посмотреть в сторону статанализа, тайпчекеров и вообще компиляторов статически типизированных языков в JS?
+4

С isRequired — приём не для прода, но забавный, стоит запомнить, пожалуй (и да, статическая типизация — не панацея, хотя я сам пишу на TypeScript). Остальное… вот кто из более-менее освоившихся в теме этого не знает, скажите на милость (кроме filter(Boolean), которое с непривычки выглядит как адский хак)?

-2
Оператор… значительно

Не устану нести свет людям: это не оператор в его классическом понимании, а синтаксис.

myArray
.map(item => {
//…
})
// Избавляемся от ненужных значений
.filter(Boolean);


связку map и filter можно заменить, на один reduce:

[…].reduce((prev, curr) => {
const tmp = /*cast to boolean*/
return tmp && prev
}, true)
+2
А последнее, извиняюсь, каким образом? map + filter возвращает массив, reduce в таком исполнении — boolean.
0
Нет, про этот-то приём я знаю, я пытался понять, что хотел сказать автор предыдущего комментария своей конструкцией.
0
наверное что-нибудь типа reduce = filter + map:
[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 прогона =(((
в этом смысле итераторы питона лучше =)
0
Я просто немного поспешил с ответом. В своей практике я часто привожу массив вида [true, false, true] к переменной в которой хранится показатель того, что все объекты в изначальном массиве содержат нужное свойство или нужное значение у этого свойства
0
К
Деструктурирующее присваивание и новые имена извлечённых свойств объектов
Я бы ещё добавил что это работает и с массивами.
let arr = [1,2,3,4];
let {0: first, 1: second} = arr;
0
Если нужно вытащить скажем 10ый элемент — то вот так:
let arr = [1,2,3,4,5,6,7,8,9,10];
let {9: ten} = arr;

удобнее чем так:
let arr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
let [first, second,third,fourth,fifth, sixth, seventh, eighth, ninth and tenth] = arr;
Only those users with full accounts are able to leave comments. , please.