Знак _ в стрелочных функциях. Можно ли использовать?
Когда хочу записать стрелочную функцию, которая не имеет аргументов, делаю так _ => { ... } Насколько это принято делать? 1. Насколько я знаю, _ в JS является валидным именем переменной, такую переменную можно создать, обращаться к ней и т.д. Так получается что я просто передаю в ф-цию неиспользуемую переменную?? Тоже самое как сделал бы a => { ... } ??
2. Также я знаю, что _ используется для "пропуска" аргумента при вызове ф-ции, н-р func(_, i) В случаях когда нам нужно передать именно второй аргумент.
Насколько использование _ => { ... } принято в профессиональных кругах и является ли это корректным?
Или всё же лучше будет использовать () => { ... } ??
Насколько я знаю, _ в JS является валидным именем переменной, такую переменную можно создать, обращаться к ней и т.д. Так получается что я просто передаю в ф-цию неиспользуемую переменную?? Тоже самое как сделал бы a => { ... } ??
Именно так.
Лично я отдаю предпочтение () => { ... } по ряду причин:
Нет неиспользуемых переменных. Нет ругательств со стороны линтеров. Для рантайма это мизерное, но всё таки, улучшение производительности
Если говорить про TS, то тут вообще не рекомендуется синтаксис a => { ... }, только (a) => { ... }. И банально проще, когда у тебя весь код по разным проектам в одном стиле.
Даниил, Так же дополню этот ответ ещё вот какой информацией:
Есть библиотека underscore.js, которая использует нижнее подчёркивание так же, как jQuery использует $.
И эта библиотека была достаточно популярной. Если бы я увидел то, о чём Вы спрашиваете, я бы сразу подумал что эта библиотека используется в проекте.
А так же, Вы ничего не экономите, написав _ => {}вместо () => {} так как любая современная ide\редактор автоматически поставит закрывающую скобку после открывающей.
Таким образом, количество нажатий одинаковое, а ущерба читаемости, производительности, чистоте кода - нет.
А значит, однажды, это, может быть, убережёт кого-то от незаметного бага.
Вадим, со всем согласен, но вот этот момент неверен. Да, ИДЕ поставит закрывающую скобку, но чтобы написать => необходимо выйти из скобки, то есть это в любом случае будет ещё 1 нажатие ) / → / End.
А вообще это всё фигня, лучше сделать для стрелочной снипет и не париться.)
Это будет unused variables.
В целом ничего страшного и вполне допустимо.
Но если вы перфекционист, инспекции IDE будут мозолить вам глаз.
Кроме того, эти инспекции засоряют рабочее пространство.
Можно выключить, но тогда реально неиспользованный код можно оставить незамеченным.
Поэтому я всё же предпочитаю скобки.