function sum(a, b) {
return a + b;
}Przeanalizujmy teraz wywołania z różnymi argumentami:console.log(sum(1, 2)); //3
console.log(sum(4, 5)); //9Tutaj chyba nie trzeba dużo tłumaczyć :) Przekazujemy 2 wartości typu number, które są dodawane i zwracana jest suma.console.log(sum(1)); //NanTutaj już coś bardziej ciekawego. Gdy podaliśmy tylko 1 argument, 2 stał się undefined. Został zwrócony Nan, czyli "Not a number", ponieważ ciężko dodać 1 do undefined.console.log(sum('1', '2')); //12W powyższym przykładzie zostały przekazane 2 wartości typu string dlatego zwrócone zostało 12, ponieważ dodawane stringi łączą się ze sobą. Czyli tak jakbyśmy dokleili do '1' wartość '2'.console.log(sum('1')); //1undefinedW tym przypadku 1 typu string + undefined zwróci "1undefined", ponieważ tak jak wspomniałem wcześniej podczas dodawania stringi łączą się ze sobą.console.log(sum()); //NanGdy nie został przekazany żaden argument, oba stały się undefined, a co za tym idzie zwrócony został ponownie Nan.console.log(sum(1, 2, 3)); //3Gdy przekazaliśmy więcej argumentów niż to było wymagane, to do funkcji faktycznie zostały przekazane tylko 2, czyli tyle ile było w parametrach funkcji.A co jeśli nie wiesz ile argumentów zostanie przekazanych do funkcji, a chcesz użyć wszystkich? Można to zrobić za pomocą tytułowego obiektu arguments.
function sum() {
let sum = 0;
for (let argument of arguments)
sum += argument;
return sum;
}
console.log(sum(1)); //1
console.log(sum(1, 2)); //3
console.log(sum(1, 2, 3)); //6
console.log(sum(9, 10, 1, 21, 54, 21, 1)); //117Jak widzisz niezależnie od tego ile argumentów zostanie przekazanych wszystkie zostaną zsumowane. Wystarczy iterować się po obiekcie arguments, aby dostać się do każdego z nich.function sum() {
let num = 0;
arguments[0] = 100;
if(arguments.length > 0)
num = arguments[1];
return num;
}
console.log(sum(1, 2)); //2Równie dobrze możesz odwoływać się do obiektu arguments poprzez wartości indeksów, za pomocą właściwości length możesz sprawdzić ile argumentów zostało przekazanych. Możesz przypisywać nowe wartości oraz pobierać wszystkie wartości argumentów.To wszystko co chciałem Ci przekazać w tym artykule. Zapraszam Cię do kolejnych artykułów z serii podstaw programowania w języku JavaScript.
Poprzedni artykuł - This w JavaScript.
Następny artykuł - Parametry domyślne w JavaScript.