Как стать автором
Обновить

Комментарии 23

Ведь пишем и без всего этого. Недавняя статья про капризных разработчиков как раз про это)

А вот async/await это невероятно удобно, и правда.
Ведь пишем и без всего этого...
Можно и без, но удобные вещи, да и нативные, это не какую-то рамду в проект втащить.

Async/await удобна там, где много взаимного вызова асинхронного кода. При этом проверки на ошибку производится а самом верхнем уровне. В клиентских приложениях скорее редкость. При написании веб служб встречается чаще

Можно и без :)
вместо стрелочных функций каждый раз сохраняете контекст в переменную или делаете bind(this)?

Я не подколоть, искренне интересуюсь. Для меня аргументом для использования стрелочных функций стало именно сохранение контекста без лишнего кода.

Что, кстати, не отражено в данной статье. Стрелочные функции — это не просто короткий и странный с непривычки способ записи функции. Это еще и сохранение this
Плюсую, это довольно важная часть этой фичи
Сохраняю контекст
bind(this), ещё всякие функции типа forEach поддерживают передачу this
Ой как часто на самом деле никакой bind(this) не нужен. И замыкать ничего особо не нужно. Не, в колбеках я сам часто => использую, но на самом деле не всегда это необходимо.

Все фичи перечисленные в статье хорошие, вот только не все браузеры поддерживают. Сам предпочитаю typescript. Он позволяет обезопасить совместимость

вроде пишешь на этих ваших js, даже деньги зарабатываешь, а тут открываешь статью и понимаешь что ты ничего не понимаешь… и как-то стыдно даже.

Ткните, пожалуйста, ламеру где вот про эти конструкции c "$" почитать:
return `$ $`
console.log(`$ ($) is an enemy to $ in "$5 JavaScript Features I Couldn't Code Without"`)


В node 12 не работает, в Chrome 79 тоже. Или я что-то совсем не так делаю?

Там имелось в виду ${firstName} ${lastName}, но кусок кода кто-то скушал.

А я ломаю голову, что за новый синтаксис я пропустил! В оригинале, к слову, те же конструкции…
Ну и зачем такое публиковать в не рабочем виде?

Думаю, тут дело не в "зачем", а в "почему". Потому что парсер съел, а никто этого не заметил.

спасибо, поправил

requiredParam пропустили

где?

requiredParam в посте есть только в одном месте. Там и пропустили:


function requiredParam(argName) {
  throw new Error(`$ is required`)
}
еще раз спасибо
const bench = {type: 'Piano', adjustable: false}
const {legs: legCount = 4} = bench

Что делает вторая строка в этом коде?

в первом случае должно быть `The bench has ${legs} legs`, во втором — `The bench has ${legCount} legs`
Я не понимаю смысла этого кода, в первом случае в объекте может быть свойство legs и оно будет использоваться при дестурктуризации, а если его нет. то будет взято значение по умолчанию. В данном же случае legCount никак не связан с объектом и не понятно, зачем тут вообще нужна деструктуризация. Можете это прояснить?

UPDATE:
Я понял, оно берет свойство legs из объекта и помещает его в переменную legCount, если legs нет в объекте, то значение legCount будет 4
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Изменить настройки темы

Истории