Форум программистов, компьютерный форум, киберфорум
JavaScript для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 5.00/4: Рейтинг темы: голосов - 4, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 26.11.2022
Сообщений: 14

Объясните понятие "параметр" функции/метода

29.11.2022, 23:10. Показов 919. Ответов 23
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый вечер.
Возможно вопрос глупый, но пожалуйста, дайте простой ответ для полного понимания для чего конкретно нужны параметры функции или метода.

Когда проходил курсы по JS, говорили, что параметры функции это те же переменные.
Я, возможно, это не правильно понимаю. Переменные мы объявляем, мы присваиваем им какое значение, впоследствии можем так же работать с этими переменными в функциях или методах. Правильно?
С параметрами все как то иначе обстоят дела. Во многих видео наблюдаю, как такие параметры просто берут из ниоткуда и вписывают в параметры функции. И вопрос в следующем. Вот кусок кода:
JavaScript
1
2
3
function formatTime(ms) {
  return Number.parseFloat(ms / 1000).toFixed(2);
}

То есть, есть функция, которая принимает параметр "ms". Что это такое? Что за "ms"? Почему данный параметр, которого нигде нет в коде, его ни где никто не объявлял и ничего ему не присваивал, вдруг появляется просто из головы и используется в вычислениях уже непосредственно в теле самой функции? "ms" это просто для удобства автор видео так назвал. А так, я же могу туда вписать просто вот такой набор букв "f[dpgsp[flfsd" и использовать вот эту дичь уже в вычислениях , и это будет работать.
Почему и как?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
29.11.2022, 23:10
Ответы с готовыми решениями:

Объясните значение метода _init_ и параметр self
в книге как-то размыто описывается, а в инете я четкого ответа не нашла. Заранее спасибо :jokingly:

Что означает первый параметр метода этого класса? И почему при вызове метода передаётся один параметр(второй)?
public static HelpPageApiModel GetHelpPageApiModel(this HttpConfiguration config, string apiDescriptionId)

Объясните понятие ООП
Скажите пожалуйста понятным языком, что такое объектно-ориентированное программирование ?

23
Молодой техлид)
Эксперт JSЭксперт HTML/CSS
 Аватар для mr_dramm
1818 / 1056 / 329
Регистрация: 17.07.2021
Сообщений: 2,147
Записей в блоге: 14
29.11.2022, 23:25
Ответ в доке
The Number.parseFloat() method parses an argument and returns a floating point number. If a number cannot be parsed from the argument, it returns NaN.
0
 Аватар для klyapa
3503 / 1267 / 429
Регистрация: 24.07.2016
Сообщений: 1,890
29.11.2022, 23:52
Цитата Сообщение от 1Valera1 Посмотреть сообщение
То есть, есть функция, которая принимает параметр "ms". Что это такое? Что за "ms"?
Если просто, то ms это не параметр, а аргумент. Параметр, это то, что ты передаёшь функции при её вызове.
JavaScript
1
2
3
4
5
function formatTime(ms) { // аргумент ms
  return Number.parseFloat(ms / 1000).toFixed(2);
}
 
formatTime(3500); // параметр 3500
1
1306 / 781 / 190
Регистрация: 19.09.2020
Сообщений: 1,993
30.11.2022, 04:33
1Valera1, про функции можно почитать подробно и понятно в документации MDN.

JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
     "use strict";
 
      _1Valera1();
      kingdaka();
 
      // Переменные в скобочках - аргументы, это фактически объявление локальных переменных в области
      // видимости функции
      function _1Valera1(param1, param2 = 13, ...param3) {
        console.log(param1); //undefined
        console.log(param2); // 13
        console.log(param3); // Array []
      }
 
      // Немного магии. NaN и undefined - это свойства объекта window и они readonly. Но в функции...
      function kingdaka() {
        console.log(window); // undefined
        let undefined = 666;
        let NaN = "777";
        console.log(undefined, NaN); // 666 777
        let param1;
        console.log(param1 === undefined); // false :(
        console.log(typeof param1 === "undefined"); // true :)
        console.log(typeof NaN); // string
        console.log(isNaN(NaN)); // false :(
        console.log(Object.is(NaN, NaN)); // true - yeessss!
        console.log(Object.is(param1, undefined)); // false :(
      }
1
Эксперт JSЭксперт HTML/CSS
 Аватар для krvsa
3837 / 1682 / 431
Регистрация: 14.03.2022
Сообщений: 4,254
30.11.2022, 09:18
Цитата Сообщение от klyapa Посмотреть сообщение
Если просто, то ms это не параметр, а аргумент. Параметр, это то, что ты передаёшь функции при её вызове.
JavaScript
1
2
3
4
function formatTime(ms) { // аргумент ms
  return Number.parseFloat(ms / 1000).toFixed(2);
}
formatTime(3500); // параметр 3500
Я даже загуглил...
Другими словами:
Параметр – это переменная, указанная в круглых скобках в объявлении функции
Аргумент – это значение, которое передаётся функции при её вызове
Т.е. все наоборот.

Вот еще из учебника
JavaScript
1
2
3
function showMessage(from, text) { // параметры: from, text
  alert(from + ': ' + text);
}
https://learn.javascript.ru/fu... #parametry
1
30.11.2022, 10:13

Не по теме:

krvsa, ну вот, прикинь, век живи век учись ) Как запомнил из учебника наоборот, так мне это и не мешало )

0
1548 / 1521 / 325
Регистрация: 03.10.2012
Сообщений: 1,551
30.11.2022, 10:54
Цитата Сообщение от 1Valera1 Посмотреть сообщение
которого нигде нет в коде, его ни где никто не объявлял
1Valera1,в вашем примере ms в скобочках - это и есть объявление. Да, это переменная, которая используется в области видимости функции (внутри функции). Поэтому, действительно, ей можно дать какое угодно имя. Эту переменную принято называть параметром.
Цитата Сообщение от 1Valera1 Посмотреть сообщение
и ничего ему не присваивал
А значение этой переменной вы присваиваете при вызове функции.
JavaScript
1
alert(formatTime(2000));
Это значение принято называть аргументом.
Вот как то так по простому.
2
 Аватар для NTHing
1782 / 963 / 388
Регистрация: 26.11.2014
Сообщений: 1,966
Записей в блоге: 1
30.11.2022, 11:23
Цитата Сообщение от 1Valera1 Посмотреть сообщение
Переменные мы объявляем, мы присваиваем им какое значение, впоследствии можем так же работать с этими переменными в функциях или методах. Правильно?
С параметрами все как то иначе обстоят дела.
...
Я извиняюсь... Это когнитивный диссонанс... Это нормально... Я имею ввиду нормальному человеку "въехать/воткнуть" в контекст контекста контекста трудно сначала... Потом будет легче... Полиморфизм всего и вся... ))) У нас (людей) очень малый словарный запас (я сейчас говорю в глобальном, мировом контексте), чтобы дать имена всему и вся... Поэтому есть некоторые пересечения понятий и смыслов...
Совет: сильно не цепляйтесь к словам, когда будет формироваться ментальная модель вашей предметной области - каждый
параметр примет свой аргумент... Но! Периодически надо дебажить оную модель!
2
 Аватар для klyapa
3503 / 1267 / 429
Регистрация: 24.07.2016
Сообщений: 1,890
30.11.2022, 12:07
это надо запомнить...
Параметр – это переменная, указанная в круглых скобках в объявлении функции
Аргумент – это значение, которое передаётся функции при её вызове
JavaScript
1
2
3
4
5
function showMessage(parametr = 'аргумент') {
    alert(parametr);
}
 
showMessage();
2
1548 / 1521 / 325
Регистрация: 03.10.2012
Сообщений: 1,551
30.11.2022, 12:25
Цитата Сообщение от klyapa Посмотреть сообщение
Аргумент – это значение, которое передаётся функции при её вызове
Я бы даже так сказал:
Аргумент – это значение, которое присваивается параметру функции при её вызове
2
 Аватар для klyapa
3503 / 1267 / 429
Регистрация: 24.07.2016
Сообщений: 1,890
30.11.2022, 12:43
Цитата Сообщение от MrCrown Посмотреть сообщение
Аргумент – это значение, которое присваивается параметру функции при её вызове
Всё ближе и ближе к истине )
2
Философ-разговорник
 Аватар для Padonak
1066 / 391 / 120
Регистрация: 20.02.2016
Сообщений: 884
Записей в блоге: 1
30.11.2022, 13:38
Цитата Сообщение от 1Valera1 Посмотреть сообщение
Что за "ms"? Почему данный параметр, которого нигде нет в коде, его ни где никто не объявлял и ничего ему не присваивал, вдруг появляется просто из головы и используется в вычислениях уже непосредственно в теле самой функции? "ms" это просто для удобства автор видео так назвал. А так, я же могу туда вписать просто вот такой набор букв "f[dpgsp[flfsd" и использовать вот эту дичь уже в вычислениях , и это будет работать.
А мне(в силу моего скудоумия) проще понять всю эту заумь, заменив всякие буржуйские слова типа "аргумент", "параметр" и прочие ругательства на слова, понятные любому алкоголику и тунеядцу:

/* абстрактно обозначаем что с чем и как будет взаимодействовать */
function crap(первая-хрень, вторая-хрень){
return первая-хрень + вторая-хрень;
}
/* задаем конкретно то, что обозначили раньше абстрактно */
console.log( crap(2, 3) );
2
1306 / 781 / 190
Регистрация: 19.09.2020
Сообщений: 1,993
30.11.2022, 15:01
JavaScript
1
2
3
4
5
function sayHello(имя, фамилия) {
  return "Hello " + имя + ' ' + фамилия;
}
 
sayHello('Гадя', 'Петрович');
"гадя" и "петрович" - аргументы.
"имя" и "фамилия" - параметры.

https://ru.wikipedia.org/wiki/... 0%B8%D0%B5)

Добавлено через 2 минуты
А в математике в y = F(x), x - это: "каждый элемент x множества X X называется независимой переменной или аргументом функции"
1
Эксперт JSЭксперт HTML/CSS
 Аватар для krvsa
3837 / 1682 / 431
Регистрация: 14.03.2022
Сообщений: 4,254
30.11.2022, 15:14
KingdaKa, так ты зацени использование
JavaScript
1
2
3
4
5
6
// Объявляем функцию
function sayHello(имя, фамилия) {
  return "Hello " + имя + ' ' + фамилия;
}
// Теперь "как в математике" ее используем 
const y = sayHello('Гадя', 'Петрович');
Т.о. все становится в общую "цепочку". 'Гадя' и 'Петрович' - называются "аргументом функции".
1
1306 / 781 / 190
Регистрация: 19.09.2020
Сообщений: 1,993
30.11.2022, 20:16
Откуда взялись эти параметры? У функции есть аргументы, а мы передаем в функцию значения аргументов. И всё
0
1308 / 1000 / 232
Регистрация: 01.10.2018
Сообщений: 3,894
30.11.2022, 20:38
Цитата Сообщение от KingdaKa Посмотреть сообщение
Откуда взялись эти параметры?
Встречный вопрос: откуда взялись эти аргументы? Хотели упростить терминологию, но получилось, как всегда.

Если говорить в общем, то данные слова - по сути синонимы. В теории изначально были формальные (formal) параметры и фактические (actual) параметры, но они могли быть и аргументами, если бы выбрали это слово. Потом решили упростить терминологию...

1Valera1, а еще параметры могут быть неявными. Это то, что может влиять на результат, но не передается в заголовке функции.
0
Эксперт JS
 Аватар для DrType
6553 / 3624 / 1075
Регистрация: 07.09.2019
Сообщений: 5,877
Записей в блоге: 1
30.11.2022, 21:18
Всё это терминологические споры. Единственное что могу добавить: в теле функции (не стрелочной) доступен объект arguments, ну так вот он же arguments, а не parameters
0
1306 / 781 / 190
Регистрация: 19.09.2020
Сообщений: 1,993
30.11.2022, 21:21
DrType, в математике вообще есть такой термин как "параметр функции"? Я знаю только аргументы функции...
0
0 / 0 / 0
Регистрация: 26.11.2022
Сообщений: 14
30.11.2022, 23:26  [ТС]
Ладно, я +- понял.

Для меня просто важно правильно читать то, что сам же и пишу. Не просто из разряда "ну так показали так и делаю" , а четко понимать что и для чего.

То есть, я могу объявить переменную и присвоить ей значение вне функции и использовать ее уже в самой функции
Или же могу указать ее в качестве параметра в параметрах этой функции, правильно?
Другими словами, параметры функции это локальные переменные с которыми могу работать только в самой функции.
Или не так?)

P.S. Всем огромное спасибо за объяснения ) не ожидал столько ответов )
0
Эксперт JSЭксперт HTML/CSS
 Аватар для krvsa
3837 / 1682 / 431
Регистрация: 14.03.2022
Сообщений: 4,254
01.12.2022, 09:06
Цитата Сообщение от DrType Посмотреть сообщение
в теле функции (не стрелочной) доступен объект arguments, ну так вот он же arguments, а не parameters
Так он и не может быть parameters по определению.
Т.к. содержит исключительно значение аргументов. Т.е. конкретные значения для параметров.

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

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

Цитата Сообщение от DrType Посмотреть сообщение
Всё это терминологические споры.
Абсолютно согласен.
2
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
01.12.2022, 09:06
Помогаю со студенческими работами здесь

Понятие свойства и метода
В вопросах для экзамена есть такой: "поняття властивості і методу" - "понятие свойства и метода". Идет речь о Си. Искал что-либо в...

Объясните понятие изоморфизма двух алгебр (на примере)
Кто нибудь, объясните мне понятие изоморфизма двух алгебр на примере. Или дайте источник информации (я искал -- толкового ничего не нашёл)....

Передача метода в метод, метода как параметр
Здравствуйте друзья. Есть значит некоторый фрейм: public class Window extends JFrame implements ActionListener { ... (1) ......

Нарисуйте блок-схему реализации метода Queue::Get. Объясните работу метода
Нарисуйте блок-схему реализации метода Queue::Get. Объясните работу метода. Ребя может кто помочь

Дать понятие понятие НОК в кольце целых чисел
Дать понятие понятие НОК в кольце целых чисел.


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru