Итак, я был back-end разработчиком, работающим с GO (golang) и Python, честно говоря, я был чистым backend-инженером, отвечающим за back-end систему, скрипт, а иногда и за деплой. Но поскольку технологический стек умножается с помощью JavaScript, я подумал, что сейчас самое время изучить новые инструменты, такие как ES6, React и NodeJs. Затем я начал свое путешествие с JavaScript.

Фаза 0. Изучение JavaScript с базовой концепцией.

Как разработчик GO/Python я уже был знаком с синтаксисом и структурой, но мне было немного легко перейти от языка со статической типизацией к языку динамическому, потому что у меня был неплохой опыт работы с python. Но да, JavaScript имеет свою структуру, собственные вещи, такие как цикл событий, стек вызовов, контекст выполнения и т. д. Поэтому сначала я начал изучать ядро, например контекст выполнения. Как это работает, что такое цикл событий, как стек вызовов работает в целом. основная концепция JavaScript. Вот список, который я составил в этом разделе.

  • Контекст выполнения.
  • Цикл событий.
  • Стек вызовов.
  • Область видимости и переменные.
  • Переменная среда ( Let, Const, Var ).
  • Область действия блока.
  • Закрытие.
  • Функции (Высшего порядка, Анонимный, Обратный вызов)
  • Методы массива, фильтрация, уменьшение, сопоставление.
  • Знакомство с двигателем V8.
  • Как работает асинхронный JS.
  • Как работает Класс.
  • Зачем веб-пак (нужен бабел).
  • API браузера, окно, это.
  • и т. д.

Изучив эти вещи, у меня в голове сложилась вся архитектура JavaScript. Какая крутая штука. Почему V8 такой крутой? V8: это высокопроизводительный движок Google с открытым исходным кодом на JavaScript и WebAssembly, написанный на C++. Он используется в Chrome и NodeJs.

Как однопоточный синхронный JavaScript работает как асинхронный многопоточный язык и насколько хорошо работает контекст выполнения.

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