При анализе функций важно понимать их структуру, используемые операторы и конечный результат выполнения. Рассмотрим примеры различных функций и их вывод.
Содержание
Базовые примеры функций
Функция | Вывод |
function hello() { return "Hello"; } | Строка "Hello" |
function sum(a, b) { return a + b; } | Сумма двух аргументов |
function checkEven(n) { return n % 2 === 0; } | true/false в зависимости от четности |
Функции с побочными эффектами
- function logMessage() { console.log("Test"); } - выведет "Test" в консоль
- function changeVar() { x = 5; } - изменит значение переменной x
- function addItem(arr) { arr.push(1); } - модифицирует переданный массив
Рекурсивные функции
Пример рекурсии
- function factorial(n) { return n <= 1 ? 1 : n * factorial(n-1); }
- factorial(3) выведет 6 (3 * 2 * 1)
- factorial(5) выведет 120 (5 * 4 * 3 * 2 * 1)
Функции высшего порядка
Функция | Результат |
function apply(f, x) { return f(x); } | Применяет функцию f к x |
function multiplyBy(n) { return function(x) { return x * n; } } | Создает функцию-множитель |
Асинхронные функции
- async function fetchData() { return await fetch(url); } - возвращает Promise
- function timeout() { setTimeout(() => "Done", 1000); } - вызовет callback через 1с
Замыкания
Пример работы замыкания
- function counter() { let count = 0; return function() { return ++count; } }
- const c = counter(); c(); // 1
- c(); // 2 (сохраняет состояние между вызовами)
Стрелочные функции
- const square = x => x * x; - возводит в квадрат
- const greet = name => `Hello ${name}`; - создает приветствие
- const noArg = () => Math.random(); - возвращает случайное число
Понимание того, что выводит функция, требует анализа ее кода, входных параметров и используемых операторов. Тестирование функций с разными входными данными помогает точно определить их поведение.