Js Functions Lab


  1. Write a function that returns a value
  2. Write a function that takes in a parameter
  3. Write a function that takes in multiple parameters


You'll be writing your solution in index.js.

In this lab, we're going to develop our communication skills in JavaScript. We're feeling festive, so we're going to be wrapping up common holiday greetings as functions so that we don't have to repeat ourselves. The beauty of functions is that we could reuse these functions for the text of greeting cards, for spoken greetings, for song lyrics, etc...

Template Literals

There are two ways main ways to include variables inside a string. Say we had a variable named date that we assign to a value:

var date = "July 3rd"

In JavaScript, we can use operators to concatenate (join) two strings, or in this case, a string and a variable, like so:

console.log("My birthday is " + date)

With date defined, the above code will log My birthday is July 3rd. However, by using a slightly modified syntax, we can achieve the same thing by embedding a variable into a string. These are called template literals and rewriting the above console.log with one would look like this:

console.log(`My birthday is ${date}`)

This will also log My birthday is July 3rd.

Now, there are two important changes to the syntax: Any variables we want to include must be wrapped in curly braces ({ }) and preceded by a dollar sign ($). In addition, instead of single, ', or double quotes, ", we must use backticks, `. If backticks are not used, JavaScript will interpret the dollar sign and curly braces as a normal part of the string, resulting in My birthday is ${date}! Any expression can be included in template literals, not just variables, so we could write something like:

console.log(`I have ${1 + 1} pets`)

And get I have 2 pets. Note that this will not log the same thing if you did the following:

console.log("I have " + 1 + 1 + " pets")

This logs I have 11 pets! JavaScript converts both 1s into strings rather than adding them together first. You would need to write the following to get the same result as template literals:

console.log("I have " + (1 + 1) + " pets")

You can use either operators or template literals to construct larger strings with dynamic values. Template literals are just a way to make your code a little easier to read and to help ensure JavaScript does not misinterpret when combining different data types into strings, like we just saw.


  1. Write a function named happyHolidays. This function should not accept any parameters and should return the string "Happy holidays!".

  2. Write a function named happyHolidaysTo. This function should accept a parameter of the name of the person you want to wish happy holidays, and return the string `Happy holidays, ${name}!`

  3. Write a function named happyCustomHolidayTo. This function should accept two parameters, the holiday you want to wish them well for, and the name of the person you're wishing well. Order of parameters matters, so make sure to first pass in the holiday and then the name. This function should return the string `Happy ${holiday}, ${name}!`

  4. Write a function named holidayCountdown. This function should accept two parameters, the holiday name and number of days until that holiday. The function should return the string `It's ${days} days until ${holiday}!`. Note that although days is used first when constructing the returned string, holidayCountdown should take in the holiday name first, then the days until that holiday.

View Functions Lab on Learn.co and start learning to code for free.

Unlock your future in tech
Learn to code.

Learn about Flatiron School's Mission

With a new take on education that falls somewhere between self-taught prodigy and four-year computer science degree, the Flatiron School promises to turn students with little programming experience into developers.

In the six months since the Manhattan coding school was acquired by WeWork, it has spawned locations in Washington, D.C., Brooklyn, and London. Now, WeWork is opening a fourth Flatiron School location, this time in Houston.

Adam Enbar, Flatiron School's cofounder, believes now is the time to grow. "How the world is changing has impacted working and learning in very similar ways. We think education fundamentally is about one thing: enabling people to pursue a better life."

Learn. Love. Code.
Students come to Flatiron School to change their lives. Join our driven community of career-changers and master the skills you need to become a software engineer or a data scientist.
Find Us