Параметры функций JavaScript

JavaScript функцияне выполняет никакой проверки значений параметров.

параметр функции

Ранее в этом курсе вы уже узнали, что функция может иметьпараметр:

functionName(parameter1, parameter2, parameter3) {
    код для выполнения
}

параметр функции (parameter)означает параметры, перечисленные в определении функцииимя.

параметр функции (argument)означает реальныйЗначение.

Правила параметров

Определение функции JavaScript не устанавливает тип данных для параметров (parameter).

Функция JavaScript не выполняет проверку типов переданных параметров (argument).

Функция JavaScript не проверяет количество переданных параметров (argument).

параметры по умолчанию

Если пропущены параметры при вызовепараметры пропущеныЕсли количество параметров (меньше, чем объявлено), то отсутствующие значения устанавливаются в:undefined.

Иногда это можно терпеть, но иногда лучше определить параметры по умолчанию:

Пример

function myFunction(x, y) {
    if (y === undefined) {
          y = 0;
    } 
}

Попробуйте сами

Если количество параметров при вызове функциислишком много параметровЕсли количество параметров (больше, чем объявлено), то можно использовать Объект argumentsдля достижения этих параметров.

Объект arguments

У JavaScript функции есть встроенный объект под названием arguments.

Объект arguments содержит массив параметров, используемых при вызове функции.

Таким образом, вы можете легко использовать функцию для поиска (например) максимального значения в списке чисел:

Пример

x = findMax(1, 123, 500, 115, 44, 88);
function findMax() {
    var i;
    var max = -Infinity;
    for (i = 0; i < arguments.length; i++) {
        if (arguments[i] > max) {
            max = arguments[i];
        }
    }
    return max;
}

Попробуйте сами

Или создайте функцию для суммирования всех введенных значений:

Пример

x = sumAll(1, 123, 500, 115, 44, 88);
function sumAll() {
    var i, sum = 0;
    for (i = 0; i < arguments.length; i++) {
        sum += arguments[i];
    }
    return sum;
}

Попробуйте сами

Параметры передаются по значению

Параметр (parameter) в вызове функции является аргументом (argument) функции.

Параметры функции передаются черезЗначениеПередача: функция знает только значение, а не положение параметра.

Если функция изменяет значение параметра, она не изменяет исходное значение параметра.

Изменения параметра не видны за пределами функции.

Объекты передаются по ссылке

В JavaScript объектные ссылки являются значениями.

Таким образом, поведение объектов, как будто они передаютсяСсылкаПринесем:

Если функция изменяет свойства объекта, она также изменяет исходное значение.

Изменения свойств объекта видны за пределами функции.