JavaScript Параметры функции
Функция JavaScript не выполняет проверку значений параметров (аргументов).
Параметры и аргументы функции
Ранее в этом учебнике вы узнали, что функции могут иметь Параметры:
functionName(parameter1, parameter2, parameter3) {
code to be executed
}
Параметры функции — это имена , перечисленные в определении функции.
аргументы функции — это реальные значения , передаваемые (и получаемые) функцией.
Правила параметров
Определения функций JavaScript не указывают типы данных для параметров.
Функции JavaScript не выполняют проверку типа на передаваемых аргументах.
Функции JavaScript не проверяют количество полученных аргументов.
Параметры по умолчанию
Если функция вызывается с отсутствующими аргументами (меньше, чем объявлено), то отсутствующие значения имеют значение: не определено
Иногда это допустимо, но иногда лучше присвоить параметру значение по умолчанию:
Пример
function myFunction(x, y) {
if (y === undefined) {
y = 0;
}
}
Если функция вызывается с слишком большим количеством аргументов (более чем объявлено), Эти аргументы могут быть достигнуты с помощью объекта arguments.
Объект arguments
Функции JavaScript имеют встроенный объект, называемый объектом arguments.
Объект Argument содержит массив аргументов, используемых при вызове функции (вызывается).
Таким образом, вы можете просто использовать функцию, чтобы найти (например) наибольшее значение в списке чисел:
Пример
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;
var sum = 0;
for (i = 0; i <arguments.length; i++) {
sum += arguments[i];
}
return sum;
}
Аргументы передаются по значению
Параметры в вызове функции являются аргументами функции.
Аргументы JavaScript передаются по значению: функция только получает знать значения, а не местоположения аргумента.
Если функция изменяет значение аргумента, она не изменяет исходное значение параметра.
Изменения аргументов не отображаются (отражены) вне функции.
Объекты передаются по ссылке
В JavaScript ссылки на объекты являются значениями.
По этой причине объекты будут вести себя так, как будто они передаются по ссылке:
Если функция изменяет свойство объекта, она изменяет исходное значение.
Изменения свойств объекта видимы (отражены) вне функции.