О языке +
- Браузерный язык программирования (Browser API, логика), браузер парсит js. Компилятор не требуется.
- Взаимодействие с сервером (запрос-ответ)
- Манипуляция html (DOM)
Комментарии
// -- JS --
// JS - язык программирования, который понимают браезеры (парсится JS - JS-движок V8 в Chrome)
// выполняется слева-направо, сверху-вниз, язык ланитицей, другие языки - плохая практика
// -- COMMENTS --
// однострочный комментарий
/*
много
строчный
комментарий
*/
// -- SYNTAX --
// синтаксис состоит из выражений и инструкций
// -- EXPRESSION --
// expression - выражение (возвращает какое-то значение)
'some-string';
1 + 2;
Math.random();
// -- STATEMENT --
// statement - инструкция, синтакис языка
// if - else
// for (...)
// const, let, var
// вывод данных в браезерную консоль
console.log('Hello, JS!!!');
// инструкции отделяются друг от драга semocolon ; statement1; statement2; ...; statementN;
// JS игнорирует пробелы и переводы строк, поэтому часто инсрукции пишут на новых строках
// statment1;
// statment2;
// statment3;
// блок {} инструкций (составные инструкции)
// {
// statment1;
// statment2;
// statment3;
// }
// можно группировать инструкции в блоки - ошибки не будет
{
console.log('Hello, JS!!! 1');
console.log('Hello, JS!!! 2');
console.log('Hello, JS!!! 3');
{
console.log('Hello, JS!!! 4');
console.log('Hello, JS!!! 5');
console.log('Hello, JS!!! 6');
}
}
- Браузерный язык программирования
- Высокоуровневый язык программирования (использующий высокий уровень абстракции для быстрой и упрощённой записи компьютерных программ)
- Использует набор инструкций и выражений, образующий так называемые скрипты
- Скрипт - последовательность команд, выполняющихся друг за другом сверху-вниз в одном потоке
- Основа логики для фронтенда, других альтернатив нет (как у бэкенда)
- Также может быть использован для написания бэк-енда (Node.js)
- Node.js в свою очередь используется как инструмент для локальной разработки (npm-пакеты для разработки ПО)
- Не требует компилятора, интерпретируется встроенными механизмами в браузере (интерпретатор)
- Везде, где есть браузер, есть JS
Логические решения
- Бизнес-логика
- Манипуляция html и css (DOM)
- Обработка действий пользования (eventListener) - клики, скролл, заполнение форм и т.д.
- Отправка запросов и обработка ответов (клиент-серверное взаимодействие)
- Хранение данных в браузере (cookies and localStorage)
- В разработке используется большое кол-во библиотек и фреймворков, которые упрощают процесс разработки
Еще важные слои JS
- Версии JavaScript (ECMAScript): Краткая история развития языка, включая основные версии (ES5, ES6/ES2015, и последующие ежегодные обновления).
- Типы данных: Перечисление основных типов данных в JavaScript (number, string, boolean, null, undefined, object, symbol, bigint).
- Асинхронность: Упоминание о том, что JavaScript является однопоточным языком, но поддерживает асинхронное выполнение кода (callbacks, promises, async/await).
- Функциональное программирование: JavaScript поддерживает функциональное программирование, включая функции высшего порядка и замыкания.
- Объектно-ориентированное программирование: JavaScript использует прототипное наследование, но также поддерживает классы (с ES6).
- Event Loop: Краткое объяснение механизма работы событийного цикла в JavaScript.
- Модульность: Информация о модульной системе JavaScript (CommonJS, ES modules).
- Строгий режим: Упоминание о 'use strict' и его значении.
- Области видимости: Объяснение различий между глобальной, функциональной и блочной областями видимости.
- Hoisting: Концепция "поднятия" объявлений переменных и функций.
- Инструменты разработки: Краткий обзор популярных инструментов для разработки на JavaScript (например, Babel, Webpack, ESLint).
- Тестирование: Упоминание о важности тестирования и популярных фреймворках для тестирования JavaScript кода.
- JavaScript вне браузера: Более подробная информация о серверном JavaScript (Node.js) и других средах выполнения.
Полезные ссылки
- Справочник по Web-разработке
- shortcode.dev — JS-cheatsheet
- www.w3schools.com — JS Tutorial
- «Современный учебник JavaScript» — learn.JavaScript.ru;
- MDN - Mozilla Development Network;
- Sorax - видео-курс "Основы JS - JavaScript-джедай" (2014)
- Фрилансер по жизни - План развития фронтенд-разработчика (2020)
- Bogdan Stashchuk - Полный Курс JavaScript Для Начинающих (2022)
- «Вы не знаете JS» — сборник книг для виртуозного владения JavaScript.
- Презентация «Яндекс.Практикума»: «Бегло по ES6 для старта»;
- JavaScript Weekly — каждую неделю на почту будут падать интересные статьи;
- Видео и материалы с ШАДа - по алгоритмам и структурам данных;
- Шпаргалка по сложности алгоритмов
- Первый взгляд на записи и кортежи в JavaScript
- Оценка сложности алгоритмов
- Справочник JS wm-school
- Справочник JS wisdomweb