Функция в JavaScript — это объект. Это можно проверить, например, в консоли браузера, где видно, что переменная, хранящая функцию, объявленную с помощью function declaration, представляет собой объект.
Этот объект содержит свойства, например:
- prototype: свойство, присутствующее в каждом объекте JavaScript.
- length: количество параметров функции.
- name: имя функции.
- [[FunctionLocation]]: скрытое свойство, указывающее местоположение функции в JavaScript-файле (например, index.js:5).
- [[Scopes]]: скрытое свойство, содержащее цепочку областей видимости.
Синтаксис объявления функции
Рассмотрим синтаксис функции, объявленной с помощью function declaration:
function myFn(a, b) {
let c;
a = a + 1;
c = a + b;
return c;
}
- function: зарезервированное ключевое слово.
- myFn: имя функции.
- (a, b): список параметров, разделенных запятыми. Ключевые слова let, var или const здесь не нужны.
- { }: фигурные скобки ограничивают тело функции. Внутри можно использовать любые выражения или операторы JavaScript.
- return c;: ключевое слово return возвращает результат функции (значение переменной c). Отсутствие точки с запятой после закрывающей фигурной скобки допустимо в JavaScript.
Функция создается при объявлении, но выполняется только при вызове.
Вызов функции
Функцию вызывают, используя её имя и круглые скобки:
myFn(10, 3);
При вызове:
- Параметрам a и b присваиваются значения аргументов (10 и 3).
- Выполняются операторы внутри тела функции.
- Возвращается значение, вычисленное выражением после return (14).
Для вывода результата в консоль используется console.log:
console.log(myFn(10, 3)); // Выведет 14 в консоль
Параметры и аргументы
- Параметры: имена переменных в объявлении функции (например, a и b в myFn(a, b)).
- Аргументы: значения, передаваемые функции при вызове (например, 10 и 3 в myFn(10, 3)).
Параметры получают значения аргументов при каждом вызове.
Область видимости
Переменные, объявленные внутри функции (например, a, b, c), имеют локальную область видимости. Они доступны только внутри функции. Попытка обратиться к ним снаружи приведет к ошибке ReferenceError: variable is not defined. Параметры функции также имеют локальную область видимости.
Необязательные элементы
- Параметры: параметры функции могут быть необязательными.
- return: ключевое слово return также необязательно. Без него функция неявно возвращает undefined.
Пример простейшей функции:
function myFn() {}
Вызов этой функции вернет undefined.
Рассмотрен синтаксис функций в JavaScript, включая объявление, вызов, параметры, аргументы, область видимости и необязательные элементы. Понимание этих концепций является основой программирования на JavaScript.