DEV Community

Cover image for More about function in JS
Annapoorani Kadhiravan
Annapoorani Kadhiravan

Posted on

More about function in JS

Why Do We Need Functions?

Suppose we want to add two numbers several times.

Without functions:

let result = 10 + 20;
console.log(result);

result = 30 + 40;
console.log(result);

result = 50 + 60;
console.log(result);
Enter fullscreen mode Exit fullscreen mode

This approach leads to code duplication.

Using functions:

function add(i, j) {
    let result = i + j;
    console.log(result);
}

add(10, 20);
add(30, 40);
add(50, 60);
Enter fullscreen mode Exit fullscreen mode

Output:

30
70
110
Enter fullscreen mode Exit fullscreen mode

Thus, functions improve:

  • Reusability
  • Readability
  • Maintainability
  • Modularity

Naming Conventions for Functions

Function names should follow certain rules.

Rules

1. Function names cannot contain spaces

❌ Invalid

function add numbers() {}
Enter fullscreen mode Exit fullscreen mode

✅ Valid

function addNumbers() {}
Enter fullscreen mode Exit fullscreen mode

2. Function names cannot use reserved keywords

❌ Invalid

function return() {}
Enter fullscreen mode Exit fullscreen mode
function for() {}
Enter fullscreen mode Exit fullscreen mode

3. Function names should describe the work performed

Good examples:

calculateTotal()
findMaximum()
printDetails()
generateOTP()
Enter fullscreen mode Exit fullscreen mode

Bad examples:

abc()
xyz()
temp()
Enter fullscreen mode Exit fullscreen mode

What is Camel Case?

Camel Case is a naming convention where:

  • The first word starts with lowercase.
  • Every subsequent word starts with an uppercase letter.

Example:

calculateTotalAmount()
findStudentMarks()
printEmployeeDetails()
Enter fullscreen mode Exit fullscreen mode

The capital letters resemble the humps of a camel.

Hence the name Camel Case.


Function Declaration

A function declaration defines a function.

Example:

function add(i, j) {
    return i + j;
}
Enter fullscreen mode Exit fullscreen mode

Here:

  • add is the function name.
  • i and j are parameters.

Function Call

Calling or invoking a function means executing it.

add(10, 20);
Enter fullscreen mode Exit fullscreen mode

Here:

10 and 20
Enter fullscreen mode Exit fullscreen mode

are called arguments.


Parameters vs Arguments

This is one of the most commonly asked interview questions.

Parameters Arguments
Variables in function definition Values passed during function call
Receive values Supply values
Exist inside the function Exist outside the function

Example:

function add(a, b)
{
    return a + b;
}

add(10, 20);
Enter fullscreen mode Exit fullscreen mode

Parameters:

a, b
Enter fullscreen mode Exit fullscreen mode

Arguments:

10, 20
Enter fullscreen mode Exit fullscreen mode

Types of Parameters

1. Formal Parameters

Declared inside the function definition.

function add(a, b)
Enter fullscreen mode Exit fullscreen mode

Here:

a and b
Enter fullscreen mode Exit fullscreen mode

are formal parameters.


2. Actual Parameters (Arguments)

Passed during function call.

add(10,20);
Enter fullscreen mode Exit fullscreen mode

Here:

10 and 20
Enter fullscreen mode Exit fullscreen mode

are actual parameters.


3. Default Parameters

Provide default values.

function greet(name = "Guest")
{
    console.log(name);
}

greet();
Enter fullscreen mode Exit fullscreen mode

Output:

Guest
Enter fullscreen mode Exit fullscreen mode

4. Rest Parameters

Used when the number of arguments is unknown.

function add(...numbers)
{
    console.log(numbers);
}
Enter fullscreen mode Exit fullscreen mode

Does a Function Always Need to Return a Value?

No.

Functions may be:

Return Functions

function add(a,b)
{
    return a+b;
}
Enter fullscreen mode Exit fullscreen mode

Non-return Functions

function display()
{
    console.log("Hello");
}
Enter fullscreen mode Exit fullscreen mode

Both are valid.


Who Decides Whether to Use Return?

The programmer decides.

Use return when:

  • The result is needed elsewhere.
  • Another function needs the output.
  • Data should be stored.

Example:

function square(x)
{
    return x*x;
}

let result = square(5);
Enter fullscreen mode Exit fullscreen mode

Use console.log() when:

You only want to display something.

function greet()
{
    console.log("Welcome");
}
Enter fullscreen mode Exit fullscreen mode

When Should We Use Return Statements?

Use return when:

✔ Performing calculations

✔ Returning values to another function

✔ Storing values in variables

✔ Building reusable utilities

Example:

function multiply(a,b)
{
    return a*b;
}

let answer = multiply(5,4);
Enter fullscreen mode Exit fullscreen mode

Output:

20
Enter fullscreen mode Exit fullscreen mode

What Happens if Return is Missing?

function add(a,b)
{
    let result = a+b;
}

console.log(add(10,20));
Enter fullscreen mode Exit fullscreen mode

Output:

undefined
Enter fullscreen mode Exit fullscreen mode

Because the function didn't return anything.


Multiple Return Statements

Yes, multiple return statements are allowed.

Example:

function checkNumber(x)
{
    if(x>0)
        return "Positive";

    return "Negative";
}
Enter fullscreen mode Exit fullscreen mode

Only one return executes.

Once return executes, the function terminates.


Can We Return Multiple Values?

Many beginners think this:

return "Biriyani",140,"Salem";
Enter fullscreen mode Exit fullscreen mode

Output:

Salem
Enter fullscreen mode Exit fullscreen mode

Because JavaScript evaluates the comma operator and returns the last value.


Correct Ways

Return an array:

return ["Biriyani",140,"Salem"];
Enter fullscreen mode Exit fullscreen mode

or

Return an object:

return {
    food:"Biriyani",
    price:140,
    place:"Salem"
};
Enter fullscreen mode Exit fullscreen mode

Does a Function Create the Value or Container?

Functions create values.

Variables act as containers.

Example:

function add(a,b)
{
    return a+b;
}
Enter fullscreen mode Exit fullscreen mode

The function creates:

30
Enter fullscreen mode Exit fullscreen mode

Container:

let answer = add(10,20);
Enter fullscreen mode Exit fullscreen mode

answer stores the value.


Function Hoisting

Function declarations are hoisted.

Example:

greet();

function greet()
{
    console.log("Hello");
}
Enter fullscreen mode Exit fullscreen mode

Output:

Hello
Enter fullscreen mode Exit fullscreen mode

JavaScript internally moves the function declaration to the top.


What is Hoisting?

Hoisting is JavaScript's behavior of moving declarations to the top of their scope before execution.


Hoisting vs Undefined

Example:

console.log(x);

var x=10;
Enter fullscreen mode Exit fullscreen mode

Output:

undefined
Enter fullscreen mode Exit fullscreen mode

Because:

Internally:

var x;

console.log(x);

x=10;
Enter fullscreen mode Exit fullscreen mode

Function hoisting:

hello();

function hello()
{
    console.log("Hi");
}
Enter fullscreen mode Exit fullscreen mode

Output:

Hi
Enter fullscreen mode Exit fullscreen mode

JavaScript is Pass-by-Value

Variables themselves are not passed.

Only values are passed.

Example:

function change(x)
{
    x=100;
}

let num=10;

change(num);

console.log(num);
Enter fullscreen mode Exit fullscreen mode

Output:

10
Enter fullscreen mode Exit fullscreen mode

Because only the value 10 was copied into x.


JavaScript vs Java Functions

JavaScript Java
Dynamic typing Static typing
Return type optional Return type mandatory
Functions can be standalone Methods belong to classes
Supports first-class functions Functions are methods
Flexible parameter count Parameter count fixed

What is function hoisting?

Functions are moved to the top of their scope during execution.


Can a function have multiple returns?

Yes, but only one executes.


What happens after return?

The function terminates immediately.


Is return mandatory?

No.


Difference between parameters and arguments?

Parameters receive values.

Arguments supply values.


What is camelCase?

A naming convention where the first word starts lowercase and subsequent words start with uppercase.

Example:

calculateTotalPrice()
Enter fullscreen mode Exit fullscreen mode

What is the default return value?

undefined
Enter fullscreen mode Exit fullscreen mode

References
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Functions
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/function
https://javascript.info/function-basics
https://www.w3schools.com/js/js_functions.asp

Top comments (0)