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

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

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

Прототип: до ES6 парадигма объектно-ориентированного программирования в JavaScript выполнялась через «прототипы». Общие методы объекта доступны через его «прототип». Затем этот «прототип» становится доступным для всех других объектов, следующих за прототипом объекта определенного типа. Например, объект Array предоставляет «прототипные» методы, такие как «push», «pull», «indexOf» и т. д. Эти прототипные методы доступны для всех объектов, созданных в виде массива, с помощью ключевого слова «new» или иным образом. Любой метод, доступный для всех массивов, может быть добавлен к его прототипу.

Функции высшего порядка. В JavaScript функции — это не что иное, как значения. К ним относятся как к гражданам первого сорта. Функции высшего порядка — это те, которые принимают одну или несколько функций в качестве аргументов и/или возвращают функцию в качестве результата. Классическим примером функций высшего порядка являются те, которые принимают функции обратного вызова в качестве аргументов.

Деструктуризация: это функция ES6, полезная для извлечения значений из массивов и объектов. Задание выполняется в левой части. На основе переменных слева распаковываются значения массива или объектов. Например, рассмотрим следующую деструктуризацию массива и объекта:

В приведенном выше примере значению 1 присваивается значение 1, значению 2–2. Точно так же имя — «abc» и возраст — 25.

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

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

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

Triple-Equal-To VS Double-Equal-To: Double Equal-To "==" проверяет наличие слабого равенства. Он выполняет приведение типов между двумя сравниваемыми значениями и выдает результат. Здесь undefined, логическое значение false, 0, пустые строки считаются равными. Это используется, когда вам нужно проверить, является ли значение истинным или нет, и не требует точных совпадений. Тройное равно «===» выполняет строгое равенство. Он не выполняет приведение типов между сравниваемыми значениями. В результате он также проверяет тип рассматриваемых значений. В этом сценарии логическое значение false — это не то же самое, что undefined, null, 0 или пустая строка. Этот тип сравнения полезен, когда вам нужно не только истинное или ложное значение, но также хотите знать, существует ли значение.

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