С прошлого раза

Итак, я начал по-настоящему ненавидеть JavaScript, так как мне было неудобно читать и довольно громоздко, но я определенно вижу необходимость его изучения. Взгляните на проект, который я сделал с Миной, здесь.

Улучшения

Во время этого модуля я придерживался подхода, основанного на принципах «это то, что есть», что означает, что у меня гораздо меньше стресса, и я использовал свою энергию, чтобы действительно учиться. React был чем-то вроде американских горок, но видя, где я сейчас нахожусь, все это того стоит.

Маска на 🎭

Анонимная функция - это функция, которая не объявлена ​​с именем или, если быть более конкретным, не привязана к идентификатору. Проще говоря, это означает, что вы можете объявить функцию именно там, где хотите ее использовать, а не объявлять ее и запускать, ссылаясь на код, который находится в другом месте вашей кодовой базы. Быстрый пример, чтобы показать вам, что я имею в виду:

Если вы знакомы с тем, как JavaScript обрабатывает код, вы знаете, что сначала он считывает файл сверху вниз и объявляет все переменные и функции. Затем он снова идет сверху вниз и выполняет код. Это означает, что в первый раз он отмечает, что делает функция printDetails и на что ссылается переменная me, отмечает это, так что, когда он видит функцию с тем же именем, вызываемую с помощью (), тогда он знает, что делать.

А теперь давайте анонимно:

Итак, разница здесь в том, что при чтении файла в первый раз JavaScript отмечает, к чему относится me, а во втором раунде он немедленно выполняет функцию в строке 3, не обращая внимания на то, что это будет делать приора. Это делает его выражением немедленно вызываемой функции (IIFE).

Вы заметите, что у этой функции нет имени и больше скобок, поэтому позвольте мне объяснить, почему. Заключение всей функции в скобки ( ) делает функцию выражением, а последний () указывает JS вызвать функцию. Это избавляет нас от необходимости создавать именованную ссылку на код в строках 3-5, поскольку он выполняется одновременно с определением.

Чтобы перевернуть эту логику - зачем мы вообще называем функции? Мы называем их так, чтобы во время выполнения мы могли ссылаться на код, который мы объявили где-то еще, и указывать нашей программе: 1) что мы хотим запустить, 2) в каком порядке, 3) в зависимости от результата определенного условия. Теперь, если бы мы попытались сделать все это, нашей программе было бы сложно определить, какая функция какую работу выполняет, без нашего явного указания. Итак, есть еще много причин для именования функций.

Теперь вы увидели, как это работает, мы можем перейти к наиболее распространенному варианту использования из моего опыта, обратному вызову. Учитывая, что часто обратный вызов не требует сложной логики или строк кода, это идеальный вариант. вариант использования для них.

Конечно, начиная с ES6, мы можем дополнительно очистить этот код с помощью стрелочных функций, именно здесь анонимные функции начинают выглядеть действительно гладко и занимают гораздо меньше места на экране.

Его можно еще больше урезать, убрав стрелку: setInterval(console.log(`My name is ${me.name}, and I am ${me.age} years old.`), 2000).

Итак, как это работает в реальном приложении? Чтобы дать некоторый контекст, здесь мы пытаемся получить данные из API, и мы используем .then & .catch для работы с асинхронными операциями. Чтобы узнать больше об Async и Promises, прочитайте этот пост от Джейми.

Итак, я написал это максимально СУХИМ способом, абстрагируя все… но от этого не стало лучше. В контексте этого приложения я собираюсь выполнить только все эти действия или ни одного из них, так что это хороший шанс использовать анонимные функции для каждого шага.

Теперь, без необходимости знать, что происходит на каждом этапе, мы знаем, что fetchBots() вернет ответ JSONified или предупреждение об ошибке, и у нас есть только одна функция, о которой нужно подумать.

Наконец, со стрелочными функциями:

Это кратко, ясно и читабельно - нам нравится это видеть.

Музыка момента

Если вы никогда не слышали о Нао, возможно, вы спали, но сейчас идеальное время для того, чтобы проснуться. В настоящее время она работает над третьим альбомом, только что родив ребенка - так что займитесь ее дискографией сейчас, чтобы быть готовыми, когда выйдет следующий.

Нао - Драйв и отключи

Lous and The Yakuza - это новая волна. Бельгийско-конголезский рэпер / певец только что выступал на COLORS, и вам стоит его посмотреть сейчас. Посмотрите материал.

Лоус и якудза - Bon Acteur | ЦВЕТНОЕ ШОУ

Улучшить

Выходим за рамки материала, стоящего передо мной, и занимаемся более независимым исследованием.

Ответы на мои предыдущие вопросы

Стрелочные функции так хороши, как все говорят, или они преувеличены?

… Не могу солгать, я обратился - благодаря этому сообщению от моего предыдущего партнера по проекту, Мины: https://medium.com/@mina.malaj/arrow-functions-es6-vs-regular -javascript-functions-es5-6fe3ce05bce6

JavaScript по-прежнему худший?

Да, я до сих пор не привык к синтаксису и способу его чтения, но нет, я могу понять, почему это так полезно

Вопросы к будущему меня

  • Как продвигается финальный проект ???

Ознакомьтесь с остальной частью серии ниже: