Обложка канала

Дизайнер учит код

Канал о том, как дизайнер интерфейсов осваивает код, чтобы научиться создавать интерактивные прототипы.

Дизайнер учит код

9 лет назад
Открыть в
#JavaScript

Функции. Часть 2

Функции умеют возвращать значения:

var multiplication = function (number) {
return console.log(number * 4);
};

multiplication(2);
//result 8


В этом примере в качестве аргумента передаётся любое значение. return console.log(number * 4); — в теле функции переданное значение умножается на 4 и полученное произведение чисел сразу выводится в консоль.

В функцию в качестве аргумента можно передавать вызов другой функции:

var multiplication = function (number) {
return number * 4;
};

console.log(multiplication(multiplication(2)));
//result 32


Сначала сработала функция, которой было передано число 2. Она его умножила на 4 и получилось 8. Затем, полученное произведение передали в качестве аргумента другой функции и снова умножили на 4. В итоге получилось 32.

console.log(); пришлось вынести за пределы основной функции. Это связано с тем, что console.log(); возвращает undefined и не может передать аргумент другой функции.

Конечно, можно немного извратиться и записать всё в переменную и затем возвращать её. Но в этом случае вернётся два числа от двух функций — 8 и 32. Выглядит это так:

var multiplication = function (number) {
x = number * 4; console.log(x);
return x;
};

multiplication(multiplication(2));
//result 8, 32


Несмотря на то, что в функцию можно передавать несколько аргументов, возвращать она может только один. Необходимо указывать, какой именно аргумент нужно вернуть. В противном случае, функция вернёт undefined. Пример:

var multiplication = function (number, text) {
return
};

console.log(multiplication());
//result undefined


С помощью нескольких функцию можно сделать генератор случайных фраз:

var words = function (words) {
return words[Math.floor(Math.random() * words.length)];
};

var randomLove = function () {
var animals = ["Котейка", "Пёсик"];
var loveOrNot = ["любит", "не любит"];
var string = words(animals) + " " + words(loveOrNot) + " тебя!";
return console.log(string);
};

randomLove();
//result Котейка любит тебя!


Первая функция words(); — отвечает за извлечения случайного индекса из массива. Но чтобы это произошло, в функцию должен быть передан массив в качестве аргумента.

randomLove(); — вторая функция, которая хранит в себе две переменные с массивами из которых случайном образом извлекаются индексы (с помощью функции words();) и записываются в отдельную переменную. Ну и в конце, функция возвращает переменную string, которая выводит в консоль индексы.