Оператор return завершает функцию
return делает сразу две вещи: возвращает значение и немедленно завершает функцию. Остальная часть функции не выполняется:
function add(a, b) {
return a + b;
console.log("Эта строка никогда не выполнится.");
}
console.log(add(2, 3));Это выведет:
5Строка после return не выполняется никогда, потому что функция завершилась строкой раньше.
Это удобно вместе с условиями. Следующая функция описывает погоду по температуре:
function describeWeather(degrees) {
if (degrees < 0) {
return "мороз";
}
if (degrees < 20) {
return "прохладно";
}
return "тепло";
}
console.log(describeWeather(-5));
console.log(describeWeather(12));
console.log(describeWeather(25));Это выведет:
мороз
прохладно
теплоПроследим за тремя вызовами:
describeWeather(-5):-5 < 0— этоtrue, поэтому функция возвращает"мороз"и завершается. Второе условие даже не проверяется.describeWeather(12): первое условие равноfalse, а второе —true, поэтому функция возвращает"прохладно".describeWeather(25): ни одно из условий не равноtrue, поэтому функция доходит до последней строки и возвращает"тепло".
Нам не понадобился else: когда выполнился return, остальная часть функции всё равно пропускается. Но порядок условий важен, потому что побеждает первый return, который выполнится. Если бы функция сначала проверяла degrees < 20, то для -5 она вернула бы "прохладно", ведь -5 тоже меньше 20.
Задание
- 1
Допишите функцию
ticketPrice, которая возвращает цену билета в зоопарк для посетителя заданного возраста: дети младше 6 лет проходят бесплатно (0), посетители младше 18 лет платят5, а все остальные —10. Тогда программа выведет0,5и10. - 2
Посетители от 65 лет тоже платят
5. Добавьте в функцию условие для них, а в конце программы выведитеticketPrice(70).