Hello World, often in JavaScript programming, you might want to perform certain actions a number of times on your website.
For instance, you might want to display the current time when the user navigates to any page within the website.
To achieve that,typically, you write the set of statements to be executed on all the pages of your website. This is not very optimal as it introduces a lot of code repetition.
To avoid this code repetition, you should opt for a function. Function allows you to write the code only once and call it at any part of your website you need it.
In this article, we will learn about
-How to define a function.
-How to execute a function
-Function parameters,arguments, returning a function etc.
What is a function
Function in JavaScript is a procedure - a set of statements that performs a task or calculates a value.
It provides an effective way to structure larger programs,saves you repetitive coding, and makes your code easier to understand.
It also helps to give names to subprograms, and to separate these subprograms from each other.
For a procedure to qualify as a function, it should accept an input and return an output, and there should be an clear relationship between the input and the output.
What problem is function solving?
Assuming you have a website with several pages, and you want to display the current time to the user on each page he visits.
Typically,the set of statements to be executed might look like the below:
let now = new Date();
let hour = now.getHours();
let min = now.getMinutes();
console.log("Time is ", hour + ":" + min)
These statements will be repeated on each page of the website to display the time of day. With this approach, we will introduce a lot of code repetition in our program violating the principle of DRY (Don't repeat yourself).
A better approach is to use a function. With function you write the set of statements only once, give it a name, and anytime you call the name, the block of code (set of statements) will be executed.
Defining a function
To define a function (also called function declaration), follow these steps:
An open declaration statement that includes the:
-
functionkeyword - the
nameof the function - A list of
parametersto the function, enclosed in paratheses()and separated by commas. - An opening and closing curly braces
{...}to enclose the set of statements
Syntax for a function
Below is the synxtax for a function:
function name(parameter1, parameter2, ...parameterN){
//block of code or set of statements to be executed
}
Example of a function to display a welcome message to the user will be written as below:
function greetUser(){
alert("Welcome user"); // statement to be executed
}
Function Declarations
Let's write the initial set of statements to display time on each page the user visits using a function
function showTime(){
let now = new Date();
let hour = now.getHours();
let min = now.getMinutes();
console.log("Time is ", hour + ":" + min)
}
The code to show time has now been packaged as a function. Here are the parts:
- The
functionkeyword - The name giving to the function
showTime - Parentheses
()that identify it as a function - An curly bracket
{}to enclose the body of the function. The body is where the statements to be executed or tasks to be done will be written
By convention, the function name should be in camelCase, and must start with a verb that demonstrate the action to be performed. Eg. showTime, fetchData, getResult.
Calling or invoking the function
A function will be executed only when it is called.Calling a function is also known as invoking a function.
To call a function, write its name followed by
argumentsenclosed inparenthesis
The syntax is as below:
functionName(arguments)
Let's invoke or call the showTime function we have defined.
showTime()
The call to showTime() executes the set of statements in the function's body (between the {}).
- Writing
showTime()is now the only code you'll need in order to make the whole block execute
Example 2: Defining and calling a function
The task is to show a welcome message to the vistor on each page visit.
Let's see how to achieve that using a function
function greetUser(){
alert("Welcome to my site"); //code to display the welcome message
}
To display the welcome message, we call the function by name greetUser followed by the () like below:
greetUser()
- We can now use the function
greetUseranywhere in the code by calling it - If we need to change or modify the set of statement in the body of the function,** we will modify the code in one place** (where the function was declared), and the change will take effect anywhere the function was called.
Passing data to function
When calling a function, the parentheses that is written after the function name doesn't have to be empty. If you put some data inside the parentheses, you can pass that data to the function body.
The data you are passing to the function is termed argument.
An argument is the value that is passed to the function when it is called.
functionName(argument)
Let's call the greetUser function and pass it some argument (data)
greetUser("Emmanuel")
In the code above, we are passing the data Emmanuel to the function's body. However, the data Emmanuel needs to be assigned to a variable before it can be used in our function. The variable is termed parameter
A parameter is the variable listed inside the parentheses in the function declaration
Expanding the greetUser function to enable us pass some data to it
function greetUser(userName){
alert("Welcome to my site" + " " + userName)
}
/* calling the function */
greetUser("Emmanuel")
- When the
greetUseris called, the given valueEmmanuel(which is the argument) is copied to the local variableuserName(which is the parameter).- In the function's body, you can now use the passed data (argument) by simply writting the local variable (parameter)
- Anytime the
userNamevariable is used in the function's body, the valueEmmanuelwill be outputted.
As mentioned earlier, a function makes a statements of code reuasable.
- If we want to pass a different data to the function, we only need to change the
argument.
greetUser('Stephen')
- Now calling
greetUser('Stephen')will output
Welcome to my site Stephen
Passing multiple data(values) to a function
We can pass more than one data or value to a function, to be executed in the function's body.
With such situations, we need to have two or more local variables (parameters) to store the arguments (data to be passed).
- In the code below, the function
showMessagehas twoparameters:textandfrom - We then call the function
showMessage()and pass the actual data we want to display when the code is executed. - These data are the
arguments. Theargumentshould be seperated by a,(comma) - Below, we passed two arguments:
How is the day going?, andEmmanuel - The first argument
How is the day going?will be copied to the first parametertext - The second argument
Emmanuelwill be copied to the second parameterfrom. - Now, anywhere we use the
parametertextandfromin the function's body, we are basically outputing the data or arguments we passed to the function - We can now use the
showMessagefunction several times, each time passing it different data.
See the code as below
function showMessage(text,from){
alert(text + " Sender : " + from)
}
// calling the function and passing the actual data
showMessage("How is the day going?","Emmanuel");
showMessage("I'll be there at 1:00pm.", "Daniel");
Now anywhere we call the function,the output will be either
How is the day going? Sender: Emmanuel
I'll be there at 1:00pm. Sender: Daniel
Accessing outer variables
A function can access any variable which is not defined in the code block, these are outer or global variables.
let timeOfDay = "Evening"
function greetUser(){
alert('Good' + " " + timeOfDay)
}
greetUser()
The output will be
Good Evening
Passing default values
You can declare a function and give it some parameter. However, when you call or invoke the function and do not provide it with an argument or data, the local variable (parameter) will store the value undefined
For instance
function showMessage(text,from){
console.log(text + " Sender : " + from)
}
showMessage("How are you today")
- Because only one argument was passed to the function, the first argument will be copied to the first parameter
text. - A second parameter
fromwas provided, but no argument was passed to it - Because no data has been copied to the parameter
from, the code will still run, but will assign the value ofundefinedto thefromparameter.
The output of the function will be
How are you today Sender : undefined
To avoid outputting undefined, we can specify the "default value" to use for a parameter if no value was passed
- We assign a default value to use for the
fromparameter using the=.
Let's rewrite the code, and assign a default value of anonymous to the from parameter
function showMessage(text, from = "anonymous"){
console.log(text + " Sender : " + from)
}
showMessage("How are you today")
Now the output will be
How are you today Sender: anonymous
Returning a value
A function can return a value to be used as the result.
When a function is called, it implicitly returns undefined unless you clearly specify the value to return.
For example
function showMessage(message){
console.log(message)
}
const result = showMessage("Hello World");
console.log ("The return value will be ",result)
The output will be
"Hello World"
"The return value will be " undefined
- In the
showMessagefunction, we did not specify thevalueto bereturned - Doing so,
undefinedis the value that is implicitly returned - The value is now stored in the
resultvariable, hence when we console.log the returned valued witll beundefined
Specifying a return value
To specify a return value, you should use the return statement followed by an expression
return expression
Let's see an example
function addNum(firstNum, secondNum){
return firstNum + secondNum;
}
const retrndVal = addNum(2, 5);
console.log('The value we get back will be ', retrndVal)
The output will be
"The value we get back will be "
7
- first we used the
returnstatement followed by theexpressionto be evaluatedfirstNum + secondNum - The expression will be evaluated first, and since we want to output the value of the expression, we used the
returnstatement - When the function
addNumis called, we passed it theargumentsthe argumets get copied into theparameters, and the expression will be evalued. - Since we want to now use the value, we use the
returnstatement which will be stored in theretrndValvariable. - The
returnstatement can be in any place of the function.During execution, the function stops at the return, evaluates the expression, and the value is returned to the calling code or assigned to avariable. - When there is no
expressionfollowing thereturn, it causes the function to exit immediately.
Summary
- Function in JavaScript is a procedure - a set of statements that performs a task or calculates a value
- To declare a function use the
functionkeyword - A function will only perform a task when it is called
- Call a function using
functionName() - Get a value from a function using the
returnstatement
I trust, this article gave you a better appreciation of function? Did you learn anything new, do you have some suggestions to add ? I will love to hear from you. Dont forget to share this article on all your social platforms.
Follow me on Twitter @emmanuelfkumah
Written with love from Ghana
Top comments (0)