Параметры функции
В прошлом уроке вы упаковали шаги под именем; скобки остались пустыми. Настоящим программам нужны входы — имя, сумма, сообщение — чтобы одно и то же тело работало с разными значениями. Эти именованные слоты — параметры. Значения, которые вы передаёте при вызове, — аргументы.
Параметры и аргументы
Когда вы пишете function greet(name) { … }, name — это параметр: локальное имя внутри тела. Когда пишете greet("Sara"), "Sara" — аргумент: конкретное значение для этого вызова. Один рецепт, разные ингредиенты.
Кто где стоит
📊 Параметр против аргумента
| Идея | Где пишете | По-простому |
|---|---|---|
| параметр | в () при объявлении |
пустая миска с ярлыком name |
| аргумент | в () при вызове |
то, что наливаете — "Sara" |
| порядок | слева направо | первый аргумент → первый параметр |
| по умолчанию | name = "friend" в объявлении |
запас, если ничего не принесли |
| пустой слот | вызов с меньшим числом значений | параметр становится undefined, если нет default |
Параметры живут в объявлении. Аргументы появляются при каждом вызове. Путать эти слова — типичная ошибка новичка; держите таблицу рядом, пока привычка не закрепится.
function greet(name) {
console.log("Hello, " + name);
}
greet("Sara");
Один вход, один слот
name ждёт внутри greet. Вызов передаёт "Sara". Тело собирает Hello, Sara и пишет в консоль. Меняйте аргумент, оставляйте тело — в этом сила параметров.
function add(a, b) {
console.log(a + b);
}
add(3, 4);
Два слота, два значения
Параметры через запятую: a, b. Аргументы в том же порядке: 3 попадает в a, 4 в b. В логе 7. Тело не зашивает эти числа — их даёт вызов.
function label(color, surface) {
console.log(color + " on " + surface);
}
label("red", "wall");
label("wall", "red");
Порядок — это договор
Первый вызов печатает red on wall. Второй — wall on red: та же функция, аргументы местами. JavaScript не угадывает, какое значение «похоже на цвет». Решает позиция.
function greetFriend(name = "friend") {
console.log("Hi, " + name);
}
greetFriend("Ali");
greetFriend();
Запасное значение, если ничего не пришло
name = "friend" задаёт значение по умолчанию. greetFriend("Ali") берёт "Ali". greetFriend() с пустыми скобками берёт "friend". Default защищает тело, когда вызывающий пропускает слот.
function showId(id) {
console.log(id);
}
showId();
Нет значения и нет default
showId() ничего не передаёт в id. Без default id равен undefined — и именно это печатается. Это не падение страницы, а сигнал: забыли аргумент или нужен default.
Передайте строку на страницу
Тот же DOM-приём, но сообщение собирается из аргумента. Одна функция может приветствовать разных гостей — меняется только вызов. HTML-демо ниже делает именно это.
Покажите параметры на странице
Объявите функцию с именем гостя, запишите короткое приветствие в абзац и вызовите её с реальной строкой.
<!DOCTYPE html>
<html>
<head>
<title>parameters — page</title>
</head>
<body>
<p id="msg">…</p>
<script>
function welcome(guest) {
let box = document.getElementById("msg");
box.textContent = "Hello, " + guest;
}
welcome("Omar");
</script>
</body>
</html>
Страница показывает Hello, Omar. guest был параметром; "Omar" — аргументом. Поменяйте только строку в вызове, обновите страницу и прочитайте новую строку. Дальше — return: отправить значение из функции наружу.
Попробуйте сами
- Напишите
function hello(name), которая логирует"hi "плюсname, и вызовите со своим именем. - Напишите
function sum(x, y), которая логируетx + y, и вызовите с двумя числами. - Вызовите функцию с двумя параметрами дважды с переставленными аргументами и сравните логи.
- Добавьте default вроде
title = "guest"и вызовите один раз со значением, один раз с пустым(). - Вызовите однопараметрическую функцию без аргумента и без default; убедитесь в
undefinedв консоли. - В HTML-демо поменяйте только строку аргумента, обновите и прочитайте абзац.
Частые ошибки
- Вызов с пустым
(), когда телу нужно значение — без default получитеundefined - Менять порядок аргументов и ждать, что JavaScript «поймёт», кто есть кто
- Путать параметр (объявление) с аргументом (вызов)
- Забывать запятую между двумя параметрами или аргументами
- Искать здесь возвращаемое значение — это следующий урок; эта страница только про входы
Кратко
- Параметры — имена в
()объявления - Аргументы — значения, которые вы передаёте при вызове
- Порядок слева направо — первый с первым, второй со вторым
- Default заполняет слот, если вызывающий его пропускает
- Пустой слот без default становится
undefined - Обновление страницы может использовать переданное значение в сообщении
- Дальше: return — отправьте результат из функции наружу
🧠 Проверьте Свои Знания
Проверьте Свои Знания
Бросьте себе вызов с помощью этой интерактивной викторины и узнайте, насколько хорошо вы понимаете тему
📝 Инструкции
- Внимательно прочитайте каждый вопрос
- Выберите лучший ответ на каждый вопрос
- Вы можете пересдавать тест столько раз, сколько захотите
- Ваш прогресс будет показан вверху