! В консоли Chrome и примерах кода в этой книге возвращаемые значе-
ния помечены разными цветами в зависимости от их типа данных,
тогда как текст, напечатанный через console.log , всегда показан
черным цветом.
Передача аргументов в функцию
Наша функция ourFirstFunction выводит одну и ту же строку при
каждом вызове, однако хотелось бы, чтобы поведением функции можно
было управлять. Чтобы функция могла изменять поведение в зависимо-
сти от значений, нам понадобятся аргументы . Список аргументов ука-
зывается в скобках после имени функции — как при ее создании, так
и при вызове.
Say hello to —
Функция sayHelloTo использует аргумент (name), чтобы поздоро-
скажи привет
ваться с человеком, имя которого передано в аргументе:
[кому-то]
var sayHelloTo = function (name) {
console.log("Привет, " + name + "!");
};
Здесь мы создали функцию и сохранили ее в переменной sayHelloTo.
При вызове функция печатает строку "Привет, " + name + "!", заме-
няя name на значение, переданное в качестве аргумента.
На рис. 8.3 показан синтаксис создания функции с одним аргументом.
Имя аргумента
function ( argument ) {
console.log("Передан аргумент: " + argument);
}
Аргумент можно использовать
в теле функции
Рис. 8.3. Синтаксис создания функции с одним аргументом
Вызывая функцию, которая принимает аргумент, введите значение,
которое вы хотите использовать в качестве этого аргумента в скобках после
имени функции. Например, чтобы поздороваться с Ником, можно ввести:
128 Часть I. Основы
sayHelloTo("Ник");
Привет, Ник!
А с Анной поздороваться можно так:
sayHelloTo("Анна");
Привет, Анна!
Каждый раз при вызове функции переданный нами аргумент name
подставляется в строку, которую печатает функция. Поэтому, когда мы
передаем значение "Ник", в консоли появляется "Привет, Ник!", а когда
пишем "Анна", мы видим в консоли "Привет, Анна!".
Печатаем котиков!
Кроме того, переданный в функцию аргумент может указывать, сколько
раз требуется что-то сделать. Например, функция drawCats выводит
Draw cats —
в консоль смайлы — кошачьи мордочки (вот такие: =^.^=). Задавая
рисовать
аргумент howManyTimes, мы сообщаем ей, сколько таких смайлов
котов
нужно напечатать:
How many
times —
сколько раз
var drawCats = function (howManyTimes) {
for (var i = 0; i < howManyTimes; i++) {
console.log(i + " =^.^=");
}
};
Тело функции представляет собой цикл for, который повторяется
столько раз, сколько указано в аргументе howManyTimes (поскольку
переменная i сначала равна 0, а затем возрастает до значения
howManyTimes - 1). На каждом повторе цикла функция выводит в кон-
соль строку i + « =^.^=».
Вот что мы увидим, вызвав эту функцию со значением 5
в качестве аргумента howManyTimes:
drawCats(5);
0 =^.^=
1 =^.^=
2 =^.^=
3 =^.^=
4 =^.^=
8. Функции 129
Попробуйте задать howManyTimes значение 100, чтобы напечатать
100 кошачьих мордочек!
Передача в функцию нескольких аргументов
В функцию можно передать больше одного значения, задав несколько
аргументов. Для этого перечислите аргументы в скобках после имени
функции, разделив их запятыми. На рис. 8.4 показан синтаксис созда-
ния функции, принимающей два аргумента.
Имена аргументов пишутся
через запятую
function (argument1, argument2) {
console.log("Первый аргумент: " + argument1);
console.log("Второй аргумент: " + argument2);
}
В теле функции можно использовать
оба аргумента
Рис. 8.4. Синтаксис создания функции с двумя аргументами
Print mul-
Фунция printMultipleTimes похожа на drawCats, однако она
tiple times —
принимает еще один аргумент с именем whatToDraw.
напечатать
многократно
var printMultipleTimes = function (howManyTimes, whatToDraw) {
What
to
for (var i = 0; i < howManyTimes; i++) {
draw — что
console.log(i + " " + whatToDraw);
рисовать
}
};
Функция printMultipleTimes печатает строку, переданную
в аргументе whatToDraw столько раз, сколько указано в аргументе
howManyTimes. Второй аргумент сообщает функции, что печатать,
а первый — сколько раз это нужно печатать.
Вызывая функцию с несколькими аргументами, перечислите
нужные вам значения через запятую в скобках после имени функ-
ции. Например, чтобы напечатать кошачьи мордочки с помощью
функции printMultipleTimes, вызывайте ее так:
printMultipleTimes(5, "=^.^=");
0 =^.^=
1 =^.^=
130 Часть I. Основы
2 =^.^=
3 =^.^=
4 =^.^=
А чтобы четыре раза напечатать смайлик «^_^», вызывайте
printMultipleTimes так:
printMultipleTimes(4, "^_^");
0 ^_^
1 ^_^
2 ^_^
3 ^_^
Здесь при вызове printMultipleTimes мы указали значение 4 для
аргумента howManyTimes и строку «^_^» для аргумента whatToDraw.
Читать дальше
Конец ознакомительного отрывка
Купить книгу