Учите ванильный JavaScript, прежде чем браться за фреймворки
VanillaJS – это использование простого JavaScript без каких-либо дополнительных библиотек, таких как jQuery. Люди используют этот термин как шутку, чтобы напомнить другим разработчикам, что многое можно сделать в наши дни без дополнительных библиотек JavaScript.
Или, в нашем случае, без новых, причудливых фреймворков.
Фреймворк Vanilla JS
История сайта Vanilla JS, выдающего себя за сайт очередного JS фреймворка, коротка, но забавна. Эрик Вастл создал его в 2012 году, чтобы с щепоткой троллинга и путаницы объяснить: зачастую можно использовать простой JavaScript без дополнительных фреймворков или библиотек.
Хотя Эрик не использовал термин как таковой, его сайт, безусловно, способствовал его популярности.
Состояние современного «обычного» JavaScript
Исторически сложилось так, что разработчики должны были обходить нативный JavaScript для решения многих задач, например, кроссбраузерности, или просто для выхода за пределы возможностей языка. Речь идет о далеких днях IE 6-7. Очень часто им в этом помогала jQuery. Но сейчас этот продолжительный условный рефлекс опоры на внешние библиотеки уже не нужен, благодаря эволюции спецификации ECMAScript, и современным браузерам, поддерживающим большинство новых возможностей.
Сегодня выбор Vanilla JS вместо jQuery чаще всего является самым разумным, не раздувая кодовую базу ненужными зависимостями. Очевидный пример с великолепного сайта Возможно вам не нужна jQuery:
// jQuery $('.my #awesome selector'); // vanilla JS document.querySelectorAll('.my #awesome selector');
На этом сайте полно примеров ванильного JS, обязательно посмотрите!
Если вам нужно больше доказательств:
We’re finally finished removing jQuery from https://t.co/r2QL2aHBfa frontend. What did we replace it with? No framework whatsoever:
• querySelectorAll,
• fetch for ajax,
• delegated-events for event handling,
• polyfills for standard DOM stuff,
• CustomElements on the rise.— Mislav Marohnić (@mislav) 25 июля 2018 г.
О JS фреймворках: за и против

Прежде всего, что мы имеем ввиду под термином «JS фреймворки»?
Речь идет о всех этих Angular, Vue, React, Backbone, Ember, Knockout, Ext, jQuery, Meteor, Express, Koa, Total, Socket.io и им подобных. Да, безусловно, они все разные. Да, некоторые из них на самом деле не фреймворки, а скорее библиотеки. Но в рамках этой статьи мы обобщим их, потому что все они имеют общую цель.
За: JavaScript-фреймворки великолепны
- они добавляют абстракции к сложному коду;
- они помогают писать код быстрее и увеличивать скорость разработки;
- они позволяют сфокусироваться на самом приложении, а не на технических аспектах.
Все это упоминается при каждом обсуждении популярных фреймворков. Но это по большей части маркетинг.
Самая большая ценность здесь – это сотрудничество. Последовательный интерфейс и методы позволяют разработчикам из разных стран понимать друг друга и работать вместе.
Если вы создаете приложение с помощью [ваш любимый фреймворк], то когда придет время, вы сможете найти опытного разработчика, который сможет быстро разобраться с кодовой базой проекта и начать работу без объяснений каждой детали вашей архитектуры.
Другой ключевой причиной использования фреймворков является практика. Они заставляют тебя тренироваться снова и снова. И это замечательно! Практика всегда приводит к мастерству, чего бы вы ни пытались достичь.
Против: JavaScript-фреймворки ужасны
Люди, которые работают над реализацией фреймворков, очень талантливы – по крайней мере, большинство из них. Они делают огромную работу по упрощению сложностей. Но все эти уровни абстракции могут быстро стать злом.
В любом проекте наступает день, когда что-то работает не так, как ожидалось, и вы не знаете, почему. Вот тогда и надо начинать копать. Когда вы пробираетесь через плохо документированный, сложный код, вам понадобится глубокое понимание JS, чтобы понять, в чем дело. В противном случае вы потеряете все драгоценное время, которое сохранили, используя свой причудливый фреймворк. Возможно, Вам просто придется купить новую эспрессо-машину, чтобы уложиться в сроки.
Ты не React-разработчик и не Vue-разработчик. Ты просто разработчик.
Конечно, фреймворки полезны для небольших команд, работающих над одним приложением. Да, они сэкономят вам некоторое время (если вы не наркоман рефакторинга). Но что делать, если у вас несколько команд и несколько проектов? Как вы думаете, все руководители групп согласятся на единую платформу для всего набора приложений? А что, если в 2019 появится новый суперфреймворк?
Проблема в том, что в тот момент, когда вы выбираете фреймворк, вы влияете на каждое предстоящее инженерное решение. Кроме того, вы приковываете свою команду к технологии, которая, вероятно, скоро будет устаревшей. Эта ужасно.
Почему сначала нужно учить ванильный JavaScript?
Если вы освоите основы JavaScript, то вашей единственной проблемой при изучении новых фреймворков будет их синтаксис.
JavaScript сейчас – это язык веб-программирования. Понимание его основных инженерных принципов имеет первостепенное значение, если вы хотите построить себе достойную карьеру в этой области.
За последние 5 лет появилось больше 10 фронтенд-фреймворков. Угадайте, сколько будет в ближайшие 5-10 лет? Если вы просто притворяетесь, что знаете JavaScript, этот движок, питающий веб-революцию, как вы будете идти с ним в ногу?
Просто подумайте о том, что сегодня делают «разработчики jQuery»: пытаются догнать Angular. Завтра они будут пытаться догнать React / Vue. И этот грустный цикл продолжается.

Знание ванильного JavaScript позволит вам понять или даже внести свой вклад в JS фреймворки, и поможет выбрать правильный, когда вам это потребуется.
Где и как учить ванильный JavaScript?
Надеюсь, вы готовы запачкать руки простым старым JavaScript. Вот вам суперсовет:
Всегда будьте любопытны, всегда читайте исходники и всегда пробуйте сами.
И еще несколько конкретных рекомендаций:
- Всякий раз, когда в тренде появляется новый фреймворк, продолжайте читать исходники.
- Каждый раз, когда вы пишете код, попробуйте найти простое ванильное решение, вместо того, чтобы сразу искать библиотеку.
- Идите на Stack Overflow и бросьте себе вызов, отвечая на вопросы по нативному JS.
Для начинающих: вот отличный материал для старта. И еще немного:
- Основы языка на Udacity, Codecademy и freeCodeCamp;
- JavaScript: Understanding the Weird Parts
- YDKJS-серия!
А здесь огромный список ресурсов для обучения.
Еще парочка статей:
- Modern JavaScript Explained For Dinosaurs
- ES6 for beginners with example
- Modern JavaScript for Ancient Web Developers
- The Basics of DOM Manipulation in Vanilla JavaScript (No jQuery)
- Glossary of Modern JavaScript Concepts: Part 1
Заключение
- Если Вы не знаете основных принципов веба, вы в конечном итоге уткнетесь в тупик благодаря эволюции самого языка и постоянному появлению новых фреймворков.
- Знание чистого JS сделает вас ценным инженером, который может решать сложные проблемы.
- Это сделает вас универсальным и продуктивным разработчиков, как во фронтенде, так и в бекенде.
- Это даст вам набор инструментов для развития, а не только для выполнения.
- Это поможет вам, когда потребутеся использовать фреймворк (или нет).
- Это даст вам общее представление о том, как работают браузеры и компьютеры.
Использование фреймворка, безусловно, даст вам быстрые результаты. Но если Вы не понимаете основные понятия, стоящие за ним, то далеко не уйдете. Научиться играть Wonderwall на гитаре не значит научиться сочинять музыку, но это даст вам повод для практики.
Принцип «сначала изучи основы» применим практически ко всему в жизни. От изучения нового языка программирования до нового вида спорта. Это требует много практики, но когда вы освоите основы, начнется самое интересное.
Vanilla JS Используется На Большем Количестве Сайтов, Чем jQuery
Если вы ищете новый фреймворк, который поможет вам создать веб-сайт, вам нужно знать о Vanilla JS. Это самый мощный и легкий из всех фреймворков. Он уже используется огромным количеством веб-сайтов и автоматически загружается большинством браузеров.
Как говорит команда Vanilla JS:
Vanilla JS-это быстрый, легкий, кросс-платформенный фреймворк для создания невероятных, мощных приложений JavaScript.
В следующее утверждение вам может быть трудно поверить:
На самом деле, Vanilla JS уже используется на большем количестве веб — сайтов, чем jQuery, Prototype JS, MooTools, YUI и Google Web Toolkit вместе взятые.
Если быть более точным, Vanilla JS используется, по крайней мере частично, большинством веб — сайтов, включая Facebook, Google, YouTube, Yahoo и так далее.
Стандартные функции, поддерживаемые из коробки, а не из коробки, включают замыкания; селекторы/манипуляции DOM; Ajax; сложную систему обработки событий; 2D-графику и 3D в некоторых случаях; полную поддержку регулярных выражений; и так далее. На самом деле, почти все, что вы хотите, включено в Vanilla JS.
Мало того, что это быстро. На главной странице Vanilla JS есть некоторые сравнения скорости, но мы не можем удержаться от цитирования эталона для поиска объектов DOM:
Обратите внимание, что лучшая альтернативная структура менее чем в два раза медленнее, а любимый всеми jQuery в четыре раза медленнее. Только подумайте, от какой скорости вы отказываетесь! Другие тесты показывают еще большее преимущество для Vanilla JS.
И удивительно, но мы обнаружили, что уже загружаем Vanilla JS и даже иногда используем его.
Vanilla JS — очень мощный javascript-фреймворк
Как ни странно, на Хабре упоминание этого мощнейшего фреймворка нашлось лишь в одном комментарии от апреля 2012 года.
Вступление
Для меня эта тема особенно актуальна, ведь последнее время на Хабре упоминается огромное количество js-фреймворков. Какие-то из них авторы различных проектов находят в Сети, какие-то — пишут сами, не очень понимая зачем. Кто-то просто пишет свои велосипеды.
Моё же мнение — надо стремиться к отсутствию избыточного кода, к максимальному минимализму, простите за тавтологию.
Если на весь сайт вам нужно только выбирать html-элементы по их id — глупо подключать jQuery.
Если вам на Node.js проекте надо собрать пачку js-файлов и сжать их — глупо писать или подключать тяжёлые фреймворки с кучей настроек, параметров, дополнений и методов, ведь простейший скрипт, склеивающий файлы и прогоняющий их через Кроукфордский jsmin будет намного быстрее, надёжнее и проще.
Чем больше кода — тем больше ошибок. Чем больше стороннего кода — тем сложнее поддерживать проект. Ведь когда вы берёте чужой код, вы берёте на себя и ответственность за его поддержку. Нельзя будет сказать «этот баг не мой, а вон из той библиотеки».
Vanilla JS
Итак, начнём обзор этого мощнейшего и самого популярного в мире JS-фреймворка.
(далее — перевод с официального сайта фреймворка)
Команда Vanilla JS поддерживает каждый байт кода фреймворка и каждый день много трудится, чтобы сделать его маленьким и интуитивным.
Кто использует Vanilla JS? Хорошо, что вы спросили, вот несколько примеров: Facebook, Google, YouTube, Yahoo, Wikipedia, Windows Live, Twitter, Amazon, LinkedIn, MSN, eBay, Microsoft, Tumblr, Apple, Pinterest, PayPal, Reddit, Netflix, Stack Overflow.
Вообще-то, Vanilla JS уже используется на большем количестве сайтов, чем jQuery, Prototype JS, MooTools, YUI и Google Web Toolkit вместе взятые!
- DOM (Манипуляции / Селекторы)
- Прототипная система объектов
- AJAX
- Анимации
- Система событий
- Регулярные выражения
- Функции как объекты
- Замыкания
- Библиотеку математических методов
- Библиотеку для работы с массивами
- Библиотеку для работы со строками
- Сжать исходники
- В кодировке UTF8
- Использовать «CRLF» переносы строк (Windows)
Деплоймент
Команда Vanilla JS гордится тем фактом, что это самый лёгкий фреймворк всех времён; используйте нашу стратегию выкладки на продакшн, и браузеры ваших пользователей загрузят Vanilla JS в память ещё даже до того, как начнут загружать ваш сайт.
Чтобы подключить Vanilla JS, просто добавьте следующую строку в ваш HTML:
Когда будете готовы выложить свой проект на продакшн, смените подключение на намного более быстрый метод:
Всё верно, совсем без кода. Vanilla JS настолько популярна, что браузеры автоматически загружают фреймворк уже лет десять.
Сравнение скорости работы с другими фреймворками
Поиск DOM-элемента по ID
document.getElementById('test-table');
dojo.byId('test-table');
$('test-table')
delete Ext.elCache['test-table']; Ext.get('test-table');
$jq('#test-table');
YAHOO.util.Dom.get('test-table');
document.id('test-table');
Поиск элементов по названию тэга
document.getElementsByTagName("span");
Prototype.Selector.select('span', document);
YAHOO.util.Dom.getElementsBy(function(),'span');
Ext.query('span');
$jq('span');
dojo.query('span');
Slick.search(document, 'span', new Elements);
Примеры кода
Плавно скрыть элемент
var s = document.getElementById('thing').style; s.opacity = 1; (function())();
AJAX-вызов
var r = new XMLHttpRequest(); r.open("POST", "path/to/api", true); r.onreadystatechange = function () < if (r.readyState != 4 || r.status != 200) return; alert("Success: " + r.responseText); >; r.send("banana=yellow");
Заключение

Больше информации о Vanilla JS вы можете найти по ссылкам:
- Документация по Vanilla JS
- Различные книги по Vanilla JS
- или попробуйте что-нибудь из плагинов для Vanilla JS
Когда вы фигачите ваш проект на Vanilla JS, можете использовать эту удобную кнопку:
от автора поста
Что ж, пожалуй, это и вправду самый лучший JS-фреймворк!
Советую, в первую очередь, рассматривать именно его, и лишь при острой необходимости браться за что-то другое.
- Ненормальное программирование
- Веб-разработка
- JavaScript
Да, вы должны изучить Vanilla JavaScript, прежде чем фантазировать о JS Framework-ах
1 [История JavaScript]
2 Что такое ванильный JavaScript?
3 Фреймворки JavaScript: плюсы и минусы 4 Зачем изучать простой JS перед фреймворками
5 Список открытых источников ванильных JS-ресурсов
6 TL;DR (too long; didn’t read (многа букаф, ниасилил)) aka Подведем итоги Перемотка до 2013 года. ⏪ Наша небольшая команда разработчиков собирается выпустить один из самых впечатляющих проектов клиентов на сегодняшний день. Я за своим рабочим столом, просматривая утренние электронные письма. Мой партнер врывается через дверь офиса: «Что-то не так с нашим Angular-приложением, чувак. У меня есть digest is already in progress ошибка, везде появляется ошибка — не могу понять, что происходит», — говорит он, явно нервничая. Но я не нервничаю и не нервничаю. Я точно знаю, с чего начать, потому что я знаю свой JavaScript. И все это я знаю благодаря автоботу. Перемотка на 2011 год. ⏪ В то время я все еще был студентом-программистом с мечтательными глазами, и меня не трогали бизнес-требования реального программирования . Я был увлечен серверной разработкой и не имел никакого желания изучать ванильный JavaScript или что-либо подобное. Но мне и моим друзьям пришлось создать софт, ориентированного на задачи автобота в реальном времени для одного из наших классов.
Мы наткнулись на эту новую классную вещь под названием Node.js ( ее документы тогда ). Никаких причудливых зависимостей, легких порожденных дочерних процессов, асинхронных и управляемых событиями … и многие в онлайне говорили, что это было г**но. Мы не имели ни малейшего представления о том, что такое JavaScript или V8, но это все равно казалось хорошим вызовом для нашего проекта. Пирс сказал мне, чтобы я нашел приличную библиотеку для моих сценариев использования и сделал несколько копий / вставок для выполнения работы с сокетами. Я мог бы сделать это. Но я не сделал. Хотя я не знал этого в то время, это было одно из лучших ранних решений в моей карьере. Вместо этого я начал жадно читать. Об асинхронном программировании, истории JavaScript, его плюсах и минусах, обо всем. Потому что я хотел овладеть основополагающими принципами языка, на котором основан мой проект. И это заняло довольно много времени, кофе, пиво и фиктивный код. В промежутке между управлением нетерпением моих товарищей по команде и созданием не очень чистой, функциональной кодовой базы роботов я узнал очень много *. Так какой смысл здесь? Я потратил достаточно времени, чтобы понять основные принципы JavaScript, прежде чем использовать ярлыки, предоставляемые фреймворками и библиотеками JS . Почему это важно? Ну, это то, о чем этот пост: не просто притворяться. 
2 Что такое “Ванильный JavaScript”?
Позвольте мне процитировать ответ от koenpeters на Stackoverflow :
Использование «VanillaJS» означает использование простого JavaScript без каких-либо дополнительных библиотек, таких как jQuery.
Люди используют это как шутку, чтобы напомнить другим разработчикам, что в наше время можно многое сделать без необходимости в дополнительных библиотеках JavaScript.
Вот забавный сайт, который в шутку говорит об этом: http://vanilla-js.com/
Или, в нашем случае, без новых модных Фреймворков. Для общего обзора JS для начинающих, проверьте этот пост. Шутка про “фреймворк” Ванильный JS. Онлайн форумы заполнены такими вопросами, как:
В чем смысл Vanilla JavaScript? Когда был придуман термин?
История сайта Vanilla JS , который позиционируется как сайт “JS framework”, коротка, но забавна. Эрик Вастл создал его в 2012 году, использовав немного троллинга и путаницы, чтобы понять суть: часто вы можете использовать простой JavaScript вместо дополнительных фреймворков или библиотек JS. Хотя Эрик не придумал этот термин сам по себе, его сайт определенно способствовал его популяризации .
Становление современного, простого JavaScript
Исторически говоря, разработчикам нужно было обходить простой JavaScript для МНОГИХ задач, будь то для того, чтобы заставить их код работать согласованно в разных браузерах, или просто выйти за рамки того, что предлагал Javascript в то время. Мы говорим IE 6-7 дней. При этом разработчики часто по умолчанию использовали jQuery. Но этот длительный рефлекс использования внешних библиотек теперь не имеет значения, благодаря развитию спецификации ECMAScript и современным браузерам, которые более тесно следят за ней. Сегодня выбор ванильного JS перед jQuery чаще всего является самым умным выбором, поэтому ваша кодовая база не будет в конечном итоге излишне раздутой зависимостями. Очевидный пример из превосходного сайта jQuery, который вам не нужен : JQuery
$('.my #awesome selector');
против ванили JS:
document.querySelectorAll('.my #awesome selector');
Этот сайт полон полезных примеров JS Vanilla — посмотрите! О, и в случае, если вам нужно больше социальных доказательств: гитхаб провел рефакторинг своего кода и перешел с jquery на JS
Слово о JS фреймворках: плюсы и минусы

Во-первых, что я подразумеваю здесь под «JS»? Я поместил все Angular , Vue , React , Backbone, Ember, Knockout, Ext, jQuery, Meteor, Express, Koa, Total, Socket.io и т. Д. В один ящик. Да, я знаю, что некоторые — совсем другое. Да, я знаю, что некоторые из них «на самом деле не фреймворк, а скорее библиотека. Но, пожалуйста, ради этой статьи, давайте объявим их эквивалентными по своему основному назначению.
Плюсы: почему я считаю, что JavaScript-фреймворки потрясающие
→ Они помогают вам, абстрагируя сложный и сложный код. → Они помогают быстрее доставлять код и увеличивают скорость разработки. → Они заставляют вас сосредоточиться на ценности вашего приложения, а не на его реализации. Эти причины быстро всплывают, когда мы обсуждаем популярность JS-фреймворков. Но для меня они больше маркетинговые причины. Я не призываю против фреймворков здесь — на самом деле я использовал довольно много из них за всю свою карьеру. Я считаю, что величайшая ценность, которую можно найти в JS, — это сотрудничество . Их согласованный интерфейс и методы позволяют разработчикам, скажем, из Канады, США и Бразилии понимать друг друга и работать вместе. Если вы создаете приложение с помощью [вставьте свой любимый фреймворк], когда придет время, вы сможете найти опытного разработчика, который с уверенностью сможет внедрить кодовую базу проекта. Этот человек сможет приступить к рассмотрению функций без необходимости объяснения каждой части вашей архитектуры программного обеспечения. Другой ключевой причиной использования фреймворков является практика . Они заставляют вас практиковаться снова и снова. И это хорошо! Практика всегда ведет к мастерству, чего бы вы ни пытались достичь.
Минусы: почему я считаю, что JS-фреймворки это НЕ ТАК потрясающе
Люди, которые работают над внедрением фреймворков, все талантливы — по крайней мере, большинство из них. Они делают огромную работу по упрощению сложных начинаний. Но все эти уровни абстракции могут быстро стать злом . В каждой разработке приложений наступает день, когда что-то работает не так, как ожидалось, и вы не знаете почему. Вот когда вы должны начать копать. Когда вы начнете поиск по плохо документированному, сложному, универсальному, чистому коду JavaScript, вам понадобится глубокое понимание JS, чтобы добиться своего. В противном случае, я могу гарантировать, что вы потеряете все драгоценное время, которое вы сэкономили, используя свои модные фреймворки. Возможно, вам просто придется купить новую кофемашину, чтобы уложиться в сроки.
Как я когда-то читал где-то: «Вы не React и не разработчик Vue. Вы разработчик».
Конечно, фреймворки полезны для небольших команд, работающих над одним приложением. Да, они сэкономят вам немного времени (если вы не любитель рефакторинга(усовершенствования кода)). Но что, если у вас есть несколько команд, работающих над несколькими приложениями? Как вы думаете, все руководители команд согласятся с единой структурой для всего набора приложений? А что, если в 2019 году появится новый «крутой парень» фреймворк? Проблема в том, что как только вы выбираете структуру, вы влияете на каждое предстоящее инженерное решение. Кроме того, вы связываете свою команду с технологией, которая, вероятно, скоро станет устаревшей. Этот материал поражает меня.
Почему вы должны изучать ванильный JavaScript перед фреймворками?

Если вы овладеете основами JavaScript, ваша единственная задача при изучении новых JS-фреймворков будет заключаться в их конкретном синтаксисе. JavaScript сейчас является языком программирования для Интернета . Понимание его основных инженерных принципов имеет первостепенное значение, если вы хотите построить себе достойную веб-карьеру. Особенно, если вы стремитесь к передней части пакета. За последние 5 лет, более 10 frontend JS фреймворков делали новости. Угадайте, сколько будет делать то же самое в ближайшие 5-10 лет? Если вы просто притворяетесь, что знаете JavaScript, двигатель, который приводит в движение эту веб-революцию, как вы будете идти в ногу? Подумайте о том, что сегодня делают «разработчики jQuery»: пытаясь догнать Angular. Завтра они будут пытаться догнать React / Vue. И грустная, удручающая петля продолжается. Знание ванильного JavaScript поможет вам на самом деле понять — или даже внести свой вклад — в JS-фреймворки и поможет выбрать правильный, когда вам это нужно. Для меня это принесло много положительного:
- Это помогло мне создать потрясающий набор клиентских функций за очень короткий промежуток времени для приложения Ember, не зная ничего о Ember.
- Он получил предложение о работе от одного из технических гигантов из-за очень простой библиотеки, которую я написал в свободное время.
- Это заставило меня выявить ошибки в реализации libs и быстро предложить простые решения.
Где и как можно выучить ванильный JavaScript?
Я надеюсь, что убедил вас испачкать руки простым простым JavaScript. Если вы хотите надрать всем задницу в веб-разработке, вот совет с моего высокого уровня:
Всегда будьте любопытны, всегда читайте исходные материалы и всегда пробуйте сами.
И еще несколько конкретных советов:
- Всякий раз, когда в Echo JS, Hacker News или GitHub появляются новые библиотеки или фреймворки JS, продолжайте читать источники.
- Каждый раз, когда вы пишете кусок кода, старайтесь придумать простое решение JS, которое может соответствовать вашим потребностям, вместо того, чтобы сразу же искать библиотеку для интеграции.
- Перейдите на Stack Overflow и бросьте себе вызов, чтобы самостоятельно ответить на ванильные вопросы JS.
Для начинающих: я считаю, что учебный процесс, изложенный в этом посте про JS, является хорошей отправной точкой:
Теперь об учебных ресурсах:
Learn Vanilla JS — список ресурсов с открытым исходным кодом на GitHub
Я работал со своим другом Фрэнком из Snipcart, чтобы составить тщательно отобранный список учебных пособий, книг, курсов, документации, источников новостей и блогов по vanilla JS .
Мы хотим сделать его максимально открытым и совместным. Так что не стесняйтесь добавлять ценные вещи с помощью вилки + PR!

Некоторые заметные одноразовые статьи, не добавленные в список выше:
- Современный JavaScript объяснил для динозавров(https://medium.com/the-node-js-collection/modern-javascript-explained-for-dinosaurs-f695e9747b70)
- ES6 для начинающих с примером(https://dev.to/srebalaji/es6-for-beginners-with-example-c7)
- Современный JavaScript для древних веб-разработчиков(https://trackchanges.postlight.com/modern-javascript-for-ancient-web-developers-58e7cae050f9)
- Основы манипуляции с DOM в ванильном JavaScript (без jQuery)(https://www.sitepoint.com/dom-manipulation-vanilla-javascript-no-jquery)
- Глоссарий современных концепций JavaScript: часть 1(https://auth0.com/blog/glossary-of-modern-javascript-concepts/)
Я надеюсь, что вы найдете ценность в этой маленькой ванильной JavaScript-вики!
Заключение
Так вот мой TL; DR для вас, ребята:
- Если вы не знаете основополагающих принципов Интернета, вы в конечном итоге попадете в стену благодаря эволюции самого языка и постоянному появлению новых фреймворков.
- Знание чистого JS сделает вас ключевым инженером, который может решать сложные проблемы (причина перед безумным гугл поиском).
- Это сделает вас универсальным и продуктивным как на переднем, так и на заднем плане.
- Это даст вам набор инструментов для инноваций, а не просто для выполнения.
- Это поможет вам понимать, когда использовать фреймворк а когда нет .
- Это даст вам лучшее общее представление о том, как работают браузеры и компьютеры.
Использование JS-фреймворка наверняка поможет вам быстро достичь чего нибудь. Но это не приведет вас далеко, если вы не поймете основные концепции этого. Подобно тому, как научиться играть на гитаре Wonderwall не научит вас сочинять музыку, но у вас будет повод для практики.
Я твердо верю, что этот принцип «сначала изучи основы / корни» применим практически ко всему в жизни. От изучения нового языка программирования до начала нового вида спорта. Это требует много практики, но как только вы овладеете этим, остается только проявить творческий подход. И вот тут начинается настоящее веселье.
