Что происходит, когда я вызываю функцию Javascript, которая принимает параметры, не поставляя эти параметры?
Что происходит, когда я вызываю функцию Javascript, которая принимает параметры, не поставляя эти параметры?
Ответ 1
Установите значение undefined. Вы не получаете исключения. Это может быть удобный способ сделать вашу функцию более универсальной в определенных ситуациях. Undefined оценивает значение false, поэтому вы можете проверить, было ли передано значение.
Ответ 2
javascript установит любые отсутствующие параметры в значение undefined
.
function fn(a) {
console.log(a);
}
fn(1); // outputs 1 on the console
fn(); // outputs undefined on the console
Это работает для любого количества параметров.
function example(a,b,c) {
console.log(a);
console.log(b);
console.log(c);
}
example(1,2,3); //outputs 1 then 2 then 3 to the console
example(1,2); //outputs 1 then 2 then undefined to the console
example(1); //outputs 1 then undefined then undefined to the console
example(); //outputs undefined then undefined then undefined to the console
также обратите внимание, что массив arguments
будет содержать все предоставленные аргументы, даже если вы поставляете больше, чем требуется определением функции.
Ответ 3
Существует обратный ответ на все, что вы можете вызвать функцию, которая не имеет параметров в сигнатуре с параметрами.
Затем вы можете получить к ним доступ, используя встроенный arguments
global. Это массив, из которого вы можете получить данные.
например.
function calcAverage()
{
var sum = 0
for(var i=0; i<arguments.length; i++)
sum = sum + arguments[i]
var average = sum/arguments.length
return average
}
document.write("Average = " + calcAverage(400, 600, 83))
Ответ 4
В дополнение к комментариям выше массив arguments имеет нулевую длину. Его можно проверить, а не параметры, названные в сигнатуре функции.
Ответ 5
Вы получаете исключение, как только пытаетесь использовать один из параметров.