Руководство рассматривает важные аспекты работы с функциями в JavaScript, включая область видимости параметров, повторное использование имен параметров и работу с ключевым словом return.
Область видимости параметров функции
Параметры функции доступны только внутри её тела.
function myFunction(a, b) {
console.log(a, b);
}
console.log(myFunction(3, 2)); // Выведет 3 2
console.log(a); // Выведет ошибку: ReferenceError: a is not defined
Параметры функции — переменные, которым присваиваются значения аргументов при вызове. Без ключевого слова return функция возвращает undefined.
Повторное использование имен параметров
Использование одинаковых имен параметров в разных функциях допустимо благодаря области видимости. Каждый параметр ограничен областью видимости своей функции.
function myFunction1(a, b) {
console.log(a, b);
}
function myFunction2(a, b) {
console.log(a, b);
}
const a = true;
const b = null;
console.log(myFunction1(2, 3)); // Выведет 2 3
console.log(myFunction2(5, 7)); // Выведет 5 7
console.log(a, b); // Выведет true null
Переменные a и b вне функций находятся в глобальной области видимости и не конфликтуют с параметрами функций.
Ключевое слово return
Ключевое слово return возвращает значение из функции. После return выполнение функции прекращается.
function some(a, b) {
return a + b;
}
console.log(some(10, 5)); // Выведет 15
console.log(some(10, "string")); // Выведет "10string"
console.log(some("ABC", 2)); // Выведет "ABC2"
console.log(some()); // Выведет NaN
Вызов функции без аргументов приводит к присвоению параметрам значений undefined, что при сложении даёт NaN (Not a Number).
Выполнение после return
Выполнение функции останавливается сразу после инструкции return. Код после return не выполняется.
function myFunction(a) {
console.log(a);
return a;
console.log(a); // Эта строка не выполнится
let c = 10;
console.log(c); // Эта строка тоже не выполнится
}
console.log(myFunction(10)); // Выведет 10
Без инструкции return функция неявно возвращает undefined.