English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Функция может иметь один или несколько параметров, которые будут предоставлены кодом вызова и могут быть использованы внутри функции.
JavaScript является динамическим языком скриптов, поэтому параметры функции могут иметь значение любого типа данных.
функцияпараметрамиявляется перечисленным в определении функцииназвание.
функцияфактическими аргументамиявляются фактическими значениями, передаваемыми функции (и принимаемыми ею)Значение.
При определении функции для приема значений в режиме выполнения можно指定 параметры.
Параметры функции перечислены в скобках () в определении функции.
// определение функции function greet(name) { document.write("Hello, " + name); } // вызов функции greet с параметром "Seagull" greet("Seagull");Тестирование看看‹/›
Вы можете определить любое количество параметров по своему усмотрению.
// определение функции function add(num1, num2, num3) { var total = num1 + num2 + num3; document.write(total); } // Вызов функции add(5, 20, 10); // выведено: 35 add(-5, 8, 7); // вывод: 10Тестирование看看‹/›
Однако, для каждого指定的 параметра при вызове функции необходимо передать соответствующий параметр функции, в противном случае его значение станет неопределенным.
// Определение функции function showFullname(fName, lName) { document.write(fName + " " + lName); } // Вызов функции showFullname("Kavy", "Mark"); // вывод: Kavy Mark showFullname("John"); // вывод: John undefinedТестирование看看‹/›
еслинепередаватьЗначениеилинеопределенотогдаDEFAULT Функциональные параметрыРазрешается использовать значения по умолчанию для инициализации именованных параметров.
Это означает, что если при вызове функции не передается ни одного параметра для использования этих функций, то будут использоваться эти значения по умолчанию.
function myFunc(a, b = 20) { // Если параметр b не передан или не определен, b равен 20 return a + b; } myFunc(10, 5); // возвращает 15 myFunc(10); // возвращает 30Тестирование看看‹/›
Все функции в JavaScript по умолчанию могут использовать объект arguments. Параметр объекта включает значения каждого параметра.
Объект arguments является массивом, подобным объекту. Вы можете использовать индексы, аналогичные индексам массива, для доступа к его значениям.
Ниже приведен пример, который возвращает максимальное значение из переданных параметров:
getMax(9, 15, 61, 3); function getMax() { let max = 0; for (let i = 0; i < arguments.length; i++) { if (arguments[i] > max) { max = arguments[i]; } } return max; }Тестирование看看‹/›
Ниже приведен пример, который возвращает сумму всех переданных параметров:
getSum(9, 15, 61, 3); function getSum() { let sum = 0; for (let i in arguments) { sum += arguments[i]; } return sum; }Тестирование看看‹/›
Даже если функция не содержит никаких параметров, объект arguments все равно действителен.
Объект arguments является массивом, подобным объекту, но не поддерживает методы массива.
Параметр resetСинтаксис позволяет передавать переменное количество параметров функции в виде массива.
Это особенно полезно, когда вы хотите передать параметры функции, но не знаете, сколько их потребуется.
Чтобы определить rest-параметр, добавьте оператор rest перед именованным параметром (три точки ...).
function sum(...arr) { return arr.reduce((previous, current) => { return previous + current; }); } sum(1, 2); // Возврат 3 sum(1, 2, 3, 4); // Возврат 10 sum(1, 2, 3, 4, 5, 6); // Возврат 21Тестирование看看‹/›
В вызове функции параметры являются параметрами функции.
Параметры JavaScript передаютсяЗначениеПередача: функция знает только значение, а не положение параметра.
Если функция изменяет значение параметра, исходное значение параметра не изменяется.
Изменения параметра не видны вне функции (отражены).
В JavaScript объектные ссылки являются значениями.
Таким образом, поведение объекта похоже на то, что черезСсылкаПередача одного и того же:
Если функция изменяет свойства объекта, она изменяет исходное значение.
Изменения свойств объекта видны вне функции (отражены).