Функция — это кусок кода, которому дали имя. Один раз описали, дальше зовёте по имени столько раз, сколько нужно.
function greet(name) {
return 'Привет, ' + name + '!'
}
greet('Аня')Разберём по частям.
function — слово, с которого начинается описание. За ним имя: greet. В
скобках — параметры, то есть имена для значений, которые функция получит
снаружи. Здесь параметр один, он назван name.
В фигурных скобках — тело функции. Оно не выполняется в момент описания. Оно ждёт, пока функцию позовут.
Позвать — значит написать имя и скобки: greet('Аня'). То, что стоит внутри
скобок при вызове, называется аргументом. Аргумент 'Аня' попадает в
параметр name, и тело наконец выполняется.
Вернуть — не то же самое, что напечатать
Вот место, где спотыкаются почти все.
function badGreet(name) {
console.log('Привет, ' + name + '!')
}
function goodGreet(name) {
return 'Привет, ' + name + '!'
}console.log печатает строку. Она появляется в консоли и исчезает.
Программа не может взять её и использовать дальше — её больше нигде нет.
return возвращает значение. Оно становится результатом вызова, и его
можно положить в переменную, сложить с другим, передать дальше:
const message = goodGreet('Аня')
const loud = message + ' Рад видеть!'С badGreet так не выйдет. В message окажется undefined — особое
значение, которое означает «тут ничего нет». Функция без return всегда
возвращает именно его.
Запомните так: console.log — это сказать вслух, return — это отдать в
руки. Проверяющему коду нужно в руки.
Выход из функции
return не только отдаёт значение, но и немедленно прекращает работу
функции. Всё, что написано после него, не выполнится:
function max(a, b) {
if (a > b) {
return a
}
return b
}Если a больше, работа закончится на первом return, и до второго дело не
дойдёт. Поэтому else здесь не нужен.
Параметров может быть сколько угодно
function sum(a, b) {
return a + b
}
sum(2, 3)Аргументы встают на места параметров по порядку: первый аргумент в первый параметр, второй во второй.
Теперь попробуйте сами. Код выполняется прямо в браузере — нажмите «Запустить», и увидите результат через миг.