Параметры функций в JavaScript

При вызове функции мы пишем ее имя и пустые круглые скобки:

func();

На самом деле скобки не обязательно должны быть пустыми - в них мы можем передавать параметры.

Пусть, к примеру, мы хотим сделать функцию, которая параметром будет принимать число и выводить на экран квадрат этого числа.

Как мы теперь будем вызывать нашу функцию: мы будем писать имя функции, круглые скобки, а в них - какое-то число, квадрат которого мы хотим получить.

К примеру, вот так мы получим квадрат числа 2:

func(2); // выведет 4

А вот так - квадрат числа 3:

func(3); // выведет 9

Давайте теперь напишем реализацию нашей функции.

Мы знаем, что функция параметром должна принимать число. Значит, при определении функции в круглых скобках мы должны написать какую-то переменную, в которую будет попадать переданное число.

Название переменной может быть любым, давайте, например, назовем ее num:

function func(num) { }

В эту переменную num при вызове функции будет попадать указанное в круглых скобках число:

func(2); // в переменную num попадет число 2 func(3); // в переменную num попадет число 3

Давайте теперь сделаем так, чтобы наша функция выводила квадрат переданного числа. Для этого перемножим переменную num саму на себя и выведем алертом на экран:

function func(num) { alert(num * num); }

Проверим работу функции, вызвав ее с различными числами:

function func(num) { alert(num * num); } func(2); // выведет 4 func(3); // выведет 9

Сделайте функцию, которая параметром принимает число и выводит на экран куб этого числа.

Сделайте функцию, которая параметром принимает число и проверяет, положительное это число или отрицательное. В первом случае пусть функция выводит на экран текст '+++', а во втором '---'.

Несколько параметров

Функция может принимать не один параметр, а несколько. В этом случае их нужно перечислить через запятую. Давайте для примера сделаем функцию, параметром принимающую два числа и выводящую на экран их сумму:

function func(num1, num2) { alert(num1 + num2); } func(1, 2); // выведет 3

Сделайте функцию, которая параметрами принимает 3 числа и выводит на экран сумму этих чисел.

Параметры-переменные

Давайте рассмотрим следующий код:

function func(num) { alert(num * num); } func(2);

Как вы видите, в при вызове функции в нее передается число 2.

Не обязательно параметром функции передавать именно число - можно передать и переменную, содержащую нужное нам число:

function func(num) { alert(num * num); } let param = 2; func(param);

Сделайте функцию func, которая параметром будет принимать 3 числа и выводить на экран их сумму. Пусть даны 3 переменные с числами:

let param1 = 1; let param2 = 2; let param3 = 3;

С помощью созданной вами функции выведите на экран сумму значений эти переменных.

Необязательные параметры

Пусть у нас есть функция, которая параметром принимает имя и выводит его на экран:

function func(name) { alert('ваше имя: ' + name); }

Проверим работу нашей функции:

func('Вася'); // выведет 'ваше имя: Вася'

Давайте теперь сделаем так, чтобы имя было не обязательным: если оно будет введено, то выведется на экран, а если не введено - то пусть принимает значение 'Аноним'.

Для того, чтобы сделать параметр необязательным, для него нужно определить значение по умолчанию. Для этого при определении параметра нужно поставить знак = и желаемое значение, вот так:

function func(name = 'Аноним') { alert('ваше имя: ' + name); }

Проверим теперь работу нашей функции:

// Без параметра: func(); // выведет 'ваше имя: Аноним' // С параметром: func('Вася'); // выведет 'ваше имя: Вася'

Пусть теперь наша функция принимает два параметра: имя и возраст:

function func(name, age) { alert('ваше имя: ' + name + ' возраст: ' + age); }

Давайте сделаем так, чтобы возраст был необязателен:

function func(name, age = 'неизвестен') { alert('ваше имя: ' + name + ' возраст: ' + age); }

А теперь сделаем так, чтобы и имя, и возраст были необязательны:

function func(name = 'Аноним', age = 'неизвестен') { alert('ваше имя: ' + name + ' возраст: ' + age); }

Все необязательные параметры следует писать в конце. Поэтому сделать так, чтобы имя было необязательным, а возраст - нет, нельзя:

// так не будет работать function func(name = 'Аноним', age) { alert('ваше имя: ' + name + ' возраст: ' + age); }

Дана функция:

function func(num = 5) { alert(num * num); }

Эта функция вызывается следующим образом:

func(2); func(3); func();

Расскажите, каким будет результат каждого из вызовов функции.

Дана функция:

function func(num1 = 0, num2 = 0) { alert(num1 + num2); }

Эта функция вызывается следующим образом:

func(2, 3); func(3); func();

Расскажите, каким будет результат каждого из вызовов функции.