4.1 Parametry funkcji
Parametry funkcji w JavaScript pozwalają przekazywać wartości do funkcji w celu ich przetworzenia. To sprawia, że funkcje są bardziej elastyczne i adaptacyjne. W tym temacie omówimy podstawowe aspekty pracy z parametrami funkcji w JavaScript, bez uwzględniania parametrów domyślnych i parametrów reszty.
Parametry umieszcza się w nawiasach okrągłych po nazwie funkcji. W momencie wywołania funkcji, wartości tych parametrów są przekazywane do odpowiednich zmiennych wewnątrz funkcji.
Przykład:
W funkcji greet() zdefiniowano dwa parametry: name i age. Przy wywołaniu funkcji wartości Alice i 30 są przekazywane do tych parametrów.
function greet(name, age) {
return `Hello, ${name}! You are ${age} years old.`;
}
console.log(greet('Alice', 30)); // "Hello, Alice! You are 30 years old."
Obsługa niezdefiniowanych parametrów
Jeśli parametr nie został przekazany podczas wywołania funkcji, jego wartość będzie undefined. To może prowadzić do błędów, jeśli wykonywane są operacje, które nie obsługują undefined.
Przykład:
W funkcji greet() sprawdzane jest, czy parametr name został przekazany. Jeśli nie, używana jest wartość Guest.
function greet(name) {
if (name === undefined) {
return 'Hello, Guest!';
}
return `Hello, ${name}!`;
}
console.log(greet()); // "Hello, Guest!"
console.log(greet('Bob')); // "Hello, Bob!"
4.2 Parametry domyślne
Parametry domyślne pozwalają ustawić wartości, które będą używane, jeśli argument nie został przekazany podczas wywołania funkcji lub został przekazany jako undefined. Jest to szczególnie przydatne do tworzenia funkcji z opcjonalnymi parametrami.
Składnia:
function name (arg1 = value1, arg2 = value2) {
// ciało funkcji
}
Przykład 1: Prosta funkcja z parametrami domyślnymi
W tym przykładzie funkcja greet() ma parametr name z wartością domyślną Guest. Jeśli argument nie zostanie przekazany, używana będzie wartość domyślna.
function greet(name = 'Guest') {
return `Hello, ${name}!`;
}
console.log(greet('Alice')); // Wyświetli: Hello, Alice!
console.log(greet()); // Wyświetli: Hello, Guest!
Przykład 2: Parametry domyślne z wyrażeniami
W tym przykładzie parametr tax domyślnie oblicza się jako 20% od price, jeśli nie został przekazany inny argument.
function calculatePrice(price, tax = price * 0.2) {
return price + tax;
}
console.log(calculatePrice(100)); // Wyświetli: 120
console.log(calculatePrice(100, 15)); // Wyświetli: 115
Przykład 3: Parametry domyślne zależące od innych parametrów
W tym przykładzie parametry domyślne pozwalają utworzyć użytkownika z predefiniowanymi rolami i statusami.
function createUser(name, role = 'user', isActive = true) {
return { name, role, isActive };
}
console.log(createUser('Alice')); // Wyświetli: { name: 'Alice', role: 'user', isActive: true }
console.log(createUser('Bob', 'admin')); // Wyświetli: { name: 'Bob', role: 'admin', isActive: true }
console.log(createUser('Charlie', 'moderator', false)); // Wyświetli: { name: 'Charlie', role: 'moderator', isActive: false }
4.3 Parametry reszty
Parametry reszty pozwalają funkcji przyjąć dowolną liczbę argumentów i zgromadzić je w tablicy. To przydatne do tworzenia funkcji, które mogą pracować z dowolną liczbą argumentów.
Składnia:
function name (arg1, arg2, ...argArray) {
// ciało funkcji
}
Przykład 1: Sumowanie wszystkich przekazanych argumentów
W tym przykładzie funkcja sumAll() używa parametrów reszty do sumowania wszystkich przekazanych argumentów.
function sumAll(...numbers) {
return numbers.reduce((sum, num) => sum + num, 0);
}
console.log(sumAll(1, 2, 3)); // Wyświetli: 6
console.log(sumAll(4, 5, 6, 7, 8)); // Wyświetli: 30
Przykład 2: Funkcja z parametrami stałymi i resztą
W tym przykładzie funkcja showItems() przyjmuje stały parametr firstItem i nieokreśloną liczbę pozostałych argumentów zebranych w tablicy otherItems.
function showItems(firstItem, ...otherItems) {
console.log(`Pierwszy element: ${firstItem}`);
console.log(`Inne elementy: ${otherItems.join(', ')}`);
}
showItems('apple', 'banana', 'cherry', 'date');
// Wyświetli:
// Pierwszy element: apple
// Inne elementy: banana, cherry, date
Przykład 3: Funkcja z dynamicznymi argumentami
W tym przykładzie funkcja createMessage() przyjmuje pierwszy argument messageType i zbiera wszystkie pozostałe parametry w tablicy messages, aby stworzyć wiadomość.
function createMessage(messageType, ...messages) {
return `[${messageType.toUpperCase()}]: ${messages.join(' ')}`;
}
console.log(createMessage('info', 'This', 'is', 'an', 'informational', 'message'));
// Wyświetli: [INFO]: This is an informational message
console.log(createMessage('error', 'An', 'error', 'occurred'));
// Wyświetli: [ERROR]: An error occurred
GO TO FULL VERSION