«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Что такое JavaScript? Одно определение, чтобы охватить все.

Что такое JavaScript? Одно определение, чтобы охватить все.

Опубликовано 20 августа 2024 г.
Просматривать:413

What is JavaScript? One Definition to Cover It All.

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

Это вопрос №3 из серии вопросов для фронтенд-интервью. Если вы хотите улучшить свою подготовку или оставаться в курсе событий в целом, рассмотрите возможность присоединиться к списку ожидания в Frontend Camp.


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

Это занудное определение JavaScript. Но что означает каждый термин? Давайте выясним.

Однопоточный

JavaScript — это однопоточный язык, что означает, что он имеет только один основной поток выполнения. Это также означает, что у него один стек вызовов. Когда выполняется вызов функции, он добавляется в начало стека вызовов. Как только выполнение завершается, оно извлекается из стека, и элемент управления переходит к следующей функции в стеке вызовов. Последовательное выполнение задач является фундаментальным для природы JavaScript, но оно предоставляет API для выполнения асинхронных операций (некоторые примеры — fetch и setTimeout).

Динамически типизированный

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

Интерпретируемый язык программирования

В отличие от компилируемых языков, таких как Java, JavaScript не компилируется в машинный код перед выполнением. Вместо этого код читается, интерпретируется и выполняется построчно во время выполнения. Однако для повышения производительности современные движки JavaScript используют компиляцию Just-In-Time (JIT), которая компилирует фрагменты кода «на лету». Такой подход повышает скорость выполнения.

Объектно-ориентированный

Эта парадигма программирования организует код в объекты, которые являются экземплярами классов или прототипов. Ключевое слово class было введено в ES6 для синтаксического сахара. Под капотом классы JavaScript по-прежнему используют прототипы. Эта реализация ООП уникальна для JavaScript.

Функциональный

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

  1. Чистые функции: функции, которые всегда выдают один и тот же результат для заданных входных данных и не имеют побочных эффектов.
  2. Функции высшего порядка: функции, которые могут принимать другие функции в качестве аргументов или возвращать их в качестве результатов.
  3. Неизменяемость: данные рассматриваются как неизменяемые, хотя JavaScript не обеспечивает этого по умолчанию.
  4. Первоклассные функции: функции рассматриваются как первоклассные, то есть их можно присваивать переменным, передавать в качестве аргументов или возвращать из других функций.
  5. Композиция функций: построение сложной функциональности путем объединения более простых функций.

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

Императив

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

Ориентация на основе прототипа

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

Ключевые аспекты ориентации на прототипы в JavaScript включают:

  1. Создание объекта: объекты можно создавать напрямую, без предварительного определения класса.

  2. Цепочка прототипов: каждый объект имеет ссылку на другой объект, называемый его прототипом. Если свойство или метод не найдено в объекте, JavaScript ищет его в прототипе, затем в прототипе прототипа и так далее.

  3. Наследование: объекты могут наследовать свойства и методы других объектов через цепочку прототипов.

Эта система, основанная на прототипах, обеспечивает мощное и гибкое объектно-ориентированное программирование.

Событийно-ориентированная архитектура

Событийная архитектура JavaScript — это подход к программированию, при котором ход выполнения программы определяется такими событиями, как действия пользователя, выходные данные датчиков или сообщения из других программ. Это фундаментально для того, как JavaScript взаимодействует с веб-браузерами и обрабатывает асинхронные операции.

Ключевые аспекты событийной архитектуры JavaScript включают в себя:

  1. Прослушиватели событий: функции, которые «прослушивают» определенные события и выполняются, когда эти события происходят.

  2. Цикл событий: непрерывный процесс, который проверяет и отправляет события своим слушателям.

  3. Асинхронное программирование: позволяет выполнять код без блокировки основного потока, что крайне важно для адаптивных веб-приложений.

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

Все эти концепции в совокупности делают JavaScript универсальным языком, который можно использовать на различных платформах, таких как Интернет, мобильные устройства, серверы и AR.


Примечания

Для вашего интервью запомните это определение:

JavaScript — это однопоточный, динамически типизированный и интерпретируемо-компилируемый язык. Это кроссплатформенный язык, но он в основном используется в Интернете для добавления интерактивности страницам.

Ресурсы

Фронтенд-лагерь
Что означает Javascript — это однопоточный язык
Интерпретируемые и скомпилированные языки программирования

Заявление о выпуске Эта статья воспроизведена по адресу: https://dev.to/thesanjeevsharma/what-is-javascript-one-definition-to-cover-it-all-43l2?1 Если есть какие-либо нарушения, пожалуйста, свяжитесь с [email protected] удалить его
Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3