Если вы не читали часть 4, прежде чем продолжить изучение основ JavaScript, сначала прочтите ее в разделе Введение и основы JavaScript | Часть 4. Без лишних слов, давайте сразу перейдем к основам JavaScript.

Параметр по умолчанию

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

Мы также можем присвоить параметру значение по умолчанию, что означает, что если мы не отправим данные в параметр или отправим неопределенные данные, параметр будет автоматически заполнен значением по умолчанию.

Остальные параметры

Rest Parameter — это функция, с помощью которой мы можем отправить как можно больше данных в одном параметре, и он будет автоматически преобразован в массив. Для создания параметра остатка существуют условия.

В функции может быть только один параметр rest, их может быть не более одного.

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

Синтаксис расширения

Иногда у нас уже есть данные в виде массива. Но, к счастью, мы также можем передать Array в Rest Parameter. Мы можем использовать (три точки), за которыми следует массив при вызове функции. Эта функция называется Spread Syntax.

Объект аргументов

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

Но имейте в виду, что для текущего JavaScript лучше использовать параметр rest вместо объекта arguments

Функции как значение

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

Функция в переменной

В этом случае мы создаем функцию sayHello и помещаем ее в переменную say. Таким образом, чтобы вызвать функцию sayHello, мы просто вызываем имя переменной, за которым следуют параметры.

Функция в параметре

Продолжая приведенный выше код, мы используем функцию sayHello в качестве параметра функции giveMeName. чтобы вызвать его, мы просто используем имя функции, за которым следует имя параметра функции, или вы можете использовать имя переменной, которая содержит функцию.

Анонимная функция

Раньше мы всегда создавали функцию с именем. Мы также можем создать функцию без имени функции, или терм является анонимной функцией.

Мы можем создать анонимную функцию в переменной или мы можем создать ее при заполнении параметров

Функции в функции

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

Содержащуюся внутри функцию мы называем внутренней функцией. К внутренней функции можно получить доступ только там, где мы создали функцию, к ней нельзя получить доступ извне функции.

Область

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

Доступ к данным в глобальной области можно получить из локальной области, но к данным в локальной области можно получить доступ только в локальной области или в локальной области под ней (в случае функций внутри функций).

Рекурсивная функция

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

Генератор функций

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

Чтобы создать генератор функций, нам нужно использовать * (звездочка) после слова function. И чтобы возвращать данные на каждой итерации, мы можем использовать ключевое слово yield, за которым следуют данные.

Ленивая оценка

Генераторы ленивы. Значит, если мы не возьмем данные из генератора, то следующий yield не будет выполнен.

Функция стрелки

Функция стрелки — это альтернатива созданию более простой функции, чем обычная функция. Но есть ограничения, и их также нельзя использовать во всех ситуациях. Функция названа стрелкой, потому что она использует знак => (как стрелка).

Ниже приведены примеры некоторых недостатков стрелочных функций:

  • не имеет объекта аргументов
  • нельзя использовать генератор функций
  • не могу получить к этому доступ (что будет обсуждаться позже в функции в объекте)
  • не могу получить доступ к super (это будет обсуждаться позже в объектно-ориентированном программировании на JavaScript)

Функция стрелки без блока

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

Возвращаемое значение функции стрелки

Стрелочные функции могут возвращать значения, как и обычные функции
Если используется блок, нам нужно использовать ключевое слово return
Если вы не используете блок, вам не нужно использовать ключевое слово return

Стрелочная функция без скобок параметра

Если параметр в стрелочной функции только один, мы не можем использовать скобки в параметре

Стрелочная функция как параметр

Поскольку функция со стрелкой такая же, как и анонимная функция
Таким образом, мы также можем использовать функцию со стрелкой в ​​качестве параметра в другой функции.

Закрытие

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

С возможностями замыкания мы можем создать функцию в локальной области и ссылаться на данные в локальной области, оставляя область

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