Основные концепции JavaScript

Переменные и типы данных

JavaScript — это динамически типизированный язык. Это означает, что тип переменной определяется автоматически при присваивании значения.

Основные типы данных:

  • Number: представляет как целые числа, так и числа с плавающей точкой
  • String: текстовые данные, заключенные в кавычках
  • Boolean: логический тип с значениями true или false
  • Null: специальное значение, обозначающее "ничего"
  • Undefined: значение неопределенной переменной
  • Object: коллекция свойств и методов
  • Symbol: уникальный идентификатор
  • BigInt: целые числа произвольной длины

Функции

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

Особенности функций:

  • Могут быть присвоены переменным
  • Могут быть переданы как аргументы другим функциям
  • Могут быть возвращены из других функций
  • Поддерживают значения параметров по умолчанию
  • Могут быть определены как стрелочные функции

Объектно-ориентированное программирование

JavaScript поддерживает ООП через прототипное наследование, а также через классы (добавлены в ES6).

Ключевые концепции ООП в JavaScript:

  • Классы и конструкторы
  • Наследование через extends
  • Инкапсуляция с помощью приватных полей
  • Полиморфизм
  • Прототипное наследование

Асинхронное программирование

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

Механизмы асинхронности:

  • Callbacks: функции обратного вызова
  • Promises: объекты, представляющие результат асинхронной операции
  • Async/await: синтаксический сахар для работы с промисами
  • Event Loop: механизм обработки асинхронных операций

Замыкания и область видимости

Замыкания позволяют функциям сохранять доступ к переменным из внешней области видимости даже после завершения выполнения внешней функции.

Применение замыканий:

  • Инкапсуляция данных
  • Создание приватных переменных
  • Сохранение состояния
  • Частичное применение функций