Основы Javascript

Javascript - важная составляющая Сети, и фулл-стек разработчику необходимо знать больше, чем просто циклы и манипуляция с DOM в jQuery. Важно понять как реально работает JS, подобно тому, как мы изучали Ruby перед изучением Rails.

Достаточно легко реализовать несложное взаимодействие с браузером, используя Javascript и разумное количество jQuery. Но нас интересует не это - необходимо почувствовать себя комфортно, создавая полностью новый функционал на JS и работая с серьезными фреймворками и таким же кодом. Это подразумевает то, что вы должны понять, чем "дышит" JS, и какие приемы программирования используются в реальном мире.

Вы уже должны были пройти урок Основы Javascript, а теперь мы пойдем гораздо дальше в изучении JS (даже проводя аналогию между изучением Основ Ruby и изучением самого Ruby).

Пункты для размышления

Перед вами достаточно длинный список вопросов, но это то, что необходимо знать.

  • Как подключить файл Javascript к файлу HTML?
  • Как вставить Javascript напрямую в код HTML?
  • Как создать и запустить код Javascript в программах, подобных jsfiddle?
  • Как создать объект с помощью метода "Constructor"?
  • Как создать объект с помощью "литерального" метода?
  • Что возвращает JS при обращении к несуществующему атрибуту объекта?
  • Как добавить или удалить элементы в массиве?
  • В чем разница между =, ==, и ===?
  • Что в JS "истина" или "ложь": "0",NaN,null,"words","",[], undefined,{}, 1, 0?
  • Как получить длину строки?
  • Как получить символ из строки?
  • Как работает конструкция "switch"?
  • Как можно использовать объекты для выполнения той же задачи?
  • Как реализовать цикл for? for...in? while?
  • Как прервать цикл или пропустить итерацию?
  • Что такое "зарезервированные слова"?
  • Как соединить вместе два массива?
  • Как провести сортировку массива? В обратную сторону?
  • Как с помощью метода #forEach получить каждый элемент в массиве?
  • В чем объекты Javascript похожи на хэши в in Ruby?
  • Как объявить функцию (два способа)?
  • Что такое "анонимная функция"? Чем она похожа на блоки в Ruby?
  • Как передать функции аргументы?
  • Что возвращает функция?
  • Что такое "IIFE"?
  • Если функция сохранена в какой-то переменной some_var, какая будет разница между передачей этой функции другой функции в качестве аргумента и немедленным ее исполнением при ее вызове? (подсказка: скобки)
  • Как проверить Тип объекта? (строка, число, функция, undefined...)
  • Что означает this в Javascript?
  • Чем похожи и различаются this и self в Ruby?
  • Как создать переменную в глобальной области видимости? В локальной?
  • Для чего используются замыкания?
  • Как использовать замыкание для того, чтобы "закрыть" значение внутри функции?
  • Как упрощает жизнь #bind в разрезе замыканий и областей видимости?

Ваши задания

  1. Прочтите этот пост, который неплохо мотивирует на изучение Javascript.
  2. Закончите курс Codecademy (пока что вы его прошли до 5 урока).
  3. Пробегитесь по Основам Javascript от Mozilla, освежив в памяти курс Codecademy.

Дополнительные ресурсы

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

Поделиться уроком: