Return Ends the Function

return does two things at once: it gives a value back, and it ends the function immediately. The rest of the function doesn't run:

function add(a, b) {
    return a + b;
    console.log("This line never runs.");
}

console.log(add(2, 3));

This prints:

5

The line after return never runs, because the function ended one line earlier.

This is handy together with conditions. The following function describes the weather based on the temperature:

function describeWeather(degrees) {
    if (degrees < 0) {
        return "freezing";
    }
    if (degrees < 20) {
        return "cool";
    }
    return "warm";
}

console.log(describeWeather(-5));
console.log(describeWeather(12));
console.log(describeWeather(25));

This prints:

freezing
cool
warm

Let's follow the three calls:

  • describeWeather(-5): -5 < 0 is true, so the function returns "freezing" and ends. The second condition is never checked.
  • describeWeather(12): the first condition is false and the second one is true, so the function returns "cool".
  • describeWeather(25): neither condition is true, so the function gets all the way to the last line and returns "warm".

We didn't need any else: once a return runs, the rest of the function is skipped anyway. But the order of the conditions matters, because the first return that runs wins. If the function checked degrees < 20 first, it would return "cool" for -5, since -5 is less than 20 too.

Instructions

Complete the function ticketPrice, which returns the price of a zoo ticket for a visitor of the given age: children under 6 go free (0), visitors under 18 pay 5, and everyone else pays 10. The program then prints 0, 5 and 10.

Seniors aged 65 and over pay 5 too. Add a condition for them to the function, and at the end of the program, print ticketPrice(70).

Start programming for free

By signing up, you agree to the Terms of Service and Privacy Policy.

Or sign up with:

6/10