Статья предназначена для разработчиков, которые имеют некоторый опыт работы с JavaScript, но пытаются добиться прорыва.

С чего начать?

Чтобы узнать больше о JS, посетите: Mozilla's About JS и Mozilla's JS Guide.

Чтобы получить краткое справочное руководство, посетите: W3Schools JS

Мои правила:

Когда я слышу, что новые разработчики интересуются JavaScript, я немного нервничаю. JavaScript - это чудовище, и, как и других зверей, его нелегко приручить. Поиск статей определенно сбивает с толку новых разработчиков, особенно тех, кто плохо разбирается в программировании на основе прототипов. Существует бесконечное количество статей, в которых говорится о ES6 и ES5, Hoisting, Scope и обо всем, что может делать JS. Забота об этих различных идеях только ухудшит кривую обучения JS. Да, все эти концепции важны, и да, они будут иметь жизненно важное значение для укрепления ваших знаний JS. Но на самом деле все это вы узнаете, просто написав тонну кода. Так чем же отличается это руководство? Вместо того, чтобы обучать JS, я сосредоточусь на общих проблемах, которые обнаружил после работы с несколькими новыми разработчиками. Мое единственное правило - без библиотек. Особенно JQuery (скоро будет рассмотрено). Однако это не значит, что среда отсутствует.

Среды

Это наиболее часто неправильно понимаемая часть JS. Разработчикам, знакомым с объектно-ориентированным программированием, таким как Java, относительно легко понять назначение виртуальной машины Java (JVM). Вы пишете Java, компилируете ее, а JVM загружает ее и запускает. Без JVM код не мог бы быть запущен. JavaScript точно такой же, но он делает еще один шаг вперед. Вам не только нужна среда, но и не все среды одинаковы. Здесь начинающих начинают сбивать с толку. По правде говоря, это упрощает JS. Это означает, что при написании для интерфейса вам не нужно беспокоиться об API NodeJS, а только об API браузера. Если ваш веб-сайт статичен, вы можете игнорировать Fetch API. В этом истинная сила JavaScript, и на нее постоянно не обращают внимания.

Библиотеки

Мой комментарий JQuery, вероятно, задел некоторых веб-разработчиков. Однако, если вы хотите разработать JS, я считаю, что использование JQuery - худшее из возможных вариантов. Нет, это не так! Так проще в использовании! Ты ничего не знаешь! А как насчет AJAX ?? - закричал сердитый веб-разработчик. Что ж, сердитый разработчик, у меня есть для тебя новости. JQuery был создан где-то в 2006 году, когда ~ 85% пользователей Интернета все еще использовали Internet Explorer, но с тех пор браузер и JS прошли долгий путь. Теперь у разработчиков серверной части может быть ухмылка, но использование пакетов NPM ничем не отличается. Теперь, конечно, вы должны использовать пакеты NPM, чтобы упростить жизнь, когда вы освоите JS. Но пока держитесь подальше, и если вам нужен повод, прочтите о левом кризисе 2016 года. Если бы я мог провести сравнение, я бы сказал, что сказать новому разработчику использовать JQuery - все равно что попросить человека выучить английский, но дать ему французский словарь. Мой приятель изучает информатику в приличной школе в Канаде. Он выполнял задание, которое включало получение некоторых данных с сервера. Профессор сказал, что все студенты используют JQuery, в то время как никто из них еще не изучал JS. Мой приятель прислал мне свой код, и он выглядел примерно как первое изображение, на что я ответил вторым:

Как видите, JQuery на самом деле не проще, понятнее и проще в использовании, чем чистый JS. Если бы я добавил манипуляции с DOM в верхний код, оба фрагмента содержали бы примерно одинаковое количество строк. Однако допустим, что компания, в которой он будет работать, не использует JQuery. Сможет ли он заявить, что знает JS? Точно нет. Верхний код похож на нижний? Нет. Так что JQuery не сэкономит вам много строк, он не научит вас JavaScript, и его, откровенно говоря, сложнее читать. Не путайте себя этим.

Основы

Есть только одна фундаментальная концепция, которую вам нужно понять, чтобы понять JavaScript. Понятие об объектах. Сейчас вы чаще всего обнаруживаете, что люди заявляют, что «все» в JS является объектом. Хотя в большинстве случаев это так, я считаю, что людям будет легче понять, что не является объектом, и из этого извлечь, что является объектом. Единственное, что не является объектами, называется примитивными значениями. Примитив - это значение, не имеющее никаких методов или свойств. JS имеет 5 примитивных типов:

  1. нить
  2. номер
  3. логический
  4. нулевой
  5. неопределенный

Все примитивы могут быть объявлены как объекты с использованием ключевого слова «new» (т.е. var x = new String («hi»)), но это менее эффективно и дороже, чем объявление его статическим способом (var x = «hi»). Итак, если это не примитив, это объект.

Обратные вызовы против обещаний

Ключ к JS - понимание обратных вызовов и обещаний. Относительно редко можно увидеть, как кто-то говорит, что нужно использовать одно вместо другого. Но в целом более сложный процесс с связанными вызовами функций значительно выигрывает от использования обещаний. Другие просто предпочитают использовать .then () /. Catch () обработчикам. Просто помните, когда вы используете обратные вызовы, каждый раз, когда вы вызываете обратный вызов вне основного тела функции, вам нужно использовать ключевое слово return. то есть:

Без возврата JS вызовет обратный вызов дважды. А серьезно взгляните на Promise API.

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