Результат функции

Последнее обновление: 20.08.2023

Функция может возвращать результат. Для этого используется оператор return, после которого указывается возвращаемое значение:

function sum (a, b) {
	const result = a + b;
	return result;
}

В данном случае функция sum() принимает два параметра и возвращает их сумму. После оператора return идет возвращаемое значение. В данном случае это значение константы result, в реальности это может быть любое выражение, в том числе и результат другой функции.

После получения результата функции мы можем присвоить его какой-либо другой переменной или константе:

function sum (a, b) {
  return a + b;
}
let num1 = sum(2, 4);
console.log(num1);	// 6

const num2 = sum(6, 34);
console.log(num2);	// 40

Функция может возвратить только одно значение. Если же нам надо возвратить несколько значений, то мы можем возвратить их в виде массива:

function rectangle(width, height){

    const perimeter = width *2 + height * 2;
    const area = width * height;
    return [perimeter, area];
}

const rectangleData = rectangle(20, 30);
console.log(rectangleData[0]);  // 100 - периметр прямоугольника
console.log(rectangleData[1]);  // 600 - площадь прямоугольника

В данном случае в функцию rectangle передаются ширина и высота прямоугольника, а внутри функции по этим данным вычисяем периметр и площадь прямоугольника и в виде массива возвращаем из функции.

В качестве альтернативы можно поместить многочисленные возвращаемые данные в один объект:

function rectangle(width, height){

    const rectPerimeter = width *2 + height * 2;
    const rectArea = width * height;
    return {perimeter: rectPerimeter, area: rectArea};
}

const rectangleData = rectangle(20, 30);
console.log("Perimeter:", rectangleData.perimeter);  // 100 - периметр прямоугольника
console.log("Area:", rectangleData.area);  // 600 - площадь прямоугольника

Возвращение функции из функции

Одна функция может возвращать другую функцию:

function menu(n){
 
	if(n==1) return function(x, y){ return x + y;}
	else if(n==2) return function(x, y){ return x - y;}
	else if(n==3) return function(x, y){ return x * y;}
	return function(){ return 0;}
}

const action = menu(1);			// выбираем первый пункт - сложение
const result = action(2, 5);	// выполняем функцию и получаем результат в константу result
console.log(result);			// 7

В данном случае функция menu() в зависимости от переданного в нее значения возвращает одну из трех функций или пустую функцию, которая просто возвращает число 0.

Далее мы вызываем функцию menu и получаем результат этой функции - другую функцию в константу action.

const action = menu(1);

То есть здесь action будет представлять функцию, которая принимает два параметра и возвращает число. Затем через имя константы мы можем вызвать эту функцию и получить ее результат в константу result:

const result = action(2, 5);

Подобным образом мы можем получить и другую возвращаемые функции:

function menu(n){
 
	if(n==1) return function(x, y){ return x + y;}
	else if(n==2) return function(x, y){ return x - y;}
	else if(n==3) return function(x, y){ return x * y;}
	return function(){ return 0;};
}

let action = menu(1);
console.log(action(2, 5));			// 7

action = menu(2);
console.log(action(2, 5));			// -3

action = menu(3);
console.log(action(2, 5));			// 10

action = menu(190);
console.log(action(2, 5));			// 0

Аналогичным образом можно возвращать функции по имени:

function sum(x, y){ return x + y;}
function subtract(x, y){ return x - y;}
function multiply(x, y){ return x * y;}
function zero(){ return 0;}

function menu(n){
  
    switch(n){
        case 1: return sum;
        case 2: return subtract;
        case 3: return multiply;
        default: return zero;
    }
    
}
 
let action = menu(1);
console.log(action(5, 4));          // 9
 
action = menu(2);
console.log(action(5, 4));          // 1
 
action = menu(3);
console.log(action(5, 4));          // 20
 
action = menu(190);
console.log(action(5, 4));          // 0
Помощь сайту
Юмани:
410011174743222
Перевод на карту
Номер карты:
4048415020898850