JavaScript Functions

Introduction

Hello there, JavaScript enthusiast! Ever wondered how to make your code more organized, efficient, and reusable? Well, JavaScript functions are the answer. They are the building blocks of JavaScript programming, allowing us to write reusable pieces of code. Let’s dive in!

Defining Functions in JavaScript

In JavaScript, we have two main ways to define a function: function declarations and function expressions.


JavaScript Functions

Function Declarations

A function declaration is a function that is declared using the function keyword. Here’s an example:

function greet() {
  console.log("Hello, world!");
}
JavaScript

In the above example, we’ve declared a function named greet that logs “Hello, world!” to the console when called.

Function Expressions

A function expression is a function that is assigned to a variable. Here’s an example:

let greet = function() {
  console.log("Hello, world!");
};
JavaScript

In this example, we’ve created a function that does the same thing as the previous example, but this time we’ve assigned it to a variable named greet.

Calling Functions in JavaScript

Once we’ve defined a function, we can call it using its name followed by parentheses (). Here’s how we can call the greet function we defined earlier:

greet(); // Outputs: "Hello, world!"
JavaScript

Full Program Example with Function and Function call

let greet = function() {
  console.log("Hello, world!");
};
greet(); // Outputs: "Hello, world!"

In the above example, we’re calling the greet function, which logs “Hello, world!” to the console.

Understanding Function Scope in JavaScript

In JavaScript, each function creates its own scope. Scope determines the accessibility of variables, objects, and functions from different parts of the code. Let’s look at an example:

function showScope() {
  let insideFunction = "I'm inside the function";
  console.log(insideFunction); // Outputs: "I'm inside the function"
}

showScope();
console.log(insideFunction); // Outputs: Error! insideFunction is not defined
JavaScript

In this example, the variable insideFunction is only accessible within the showScope function. When we try to log it outside of the function, we get an error.

Arrow Functions in JavaScript

Arrow functions, introduced in ES6, offer a concise syntax to write functions in JavaScript. Here’s an example:

let greet = () => {
  console.log("Hello, world!");
};
greet();
JavaScript

In this example, we’ve created an arrow function that logs “Hello, world!” to the console. The => symbol is what makes this an arrow function.

Default Parameters in JavaScript Functions

Default parameters allow us to initialize functions with default values. Here’s an example:

function greet(name = "world") {
  console.log("Hello, " + name + "!");
}

greet(); // Outputs: "Hello, world!"
greet("Alice"); // Outputs: "Hello, Alice!"
JavaScript

In the above example, the greet function takes one parameter, name. If we don’t provide a value for name when calling the function, it defaults to “world”.

Rest Parameters and Spread Syntax in JavaScript Functions

Rest parameters and spread syntax provide a great way to work with function parameters in JavaScript.

Rest Parameters

Rest parameters allow us to represent an indefinite number of arguments as an array. Here’s an example:

function sum(...numbers) {
  let result = 0;
  for(let number of numbers) {
    result += number;
  }
  return result;
}

console.log(sum(1, 2, 3, 4)); // Outputs: 10
JavaScript

In this example, the sum function takes any number of arguments (thanks to the ...numbers rest parameter), adds them together, and returns the result.

Spread Syntax

Spread syntax allows us to expand an array, an object, or a string. Here’s an example:

let numbers = [1, 2, 3, 4];
console.log(sum(...numbers)); // Outputs: 10
JavaScript

In this example, we’re using spread syntax (...numbers) to pass each element of the numbers array as a separate argument to the sum function.

Executable full code

function sum(...numbers) {
  let result = 0;
  for(let number of numbers) {
    result += number;
  }
  return result;
}
let numbers = [1, 2, 3, 4];
console.log(sum(...numbers)); // Outputs: 10

Function Methods in JavaScript

JavaScript provides several methods that can be used with functions, including call(), apply(), and bind().

The call() Method

The call() method calls a function with a given this value and arguments provided individually. Here’s an example:

function greet(greeting, punctuation) {
  console.log(greeting + ", " + this.name + punctuation);
}

let person = {name: "Alice"};
greet.call(person, "Hello", "!"); // Outputs: "Hello, Alice!"
JavaScript

In this example, we’re using the call method to call the greet function with a specific this value (person) and two arguments (“Hello” and “!”).

The apply() Method

The apply() method calls a function with a given this value and arguments provided as an array (or an array-like object). Here’s an example:

function greet(greeting, punctuation) {
  console.log(greeting + ", " + this.name + punctuation);
}

let person = {name: "Alice"};
greet.apply(person, ["Hello", "!"]); // Outputs: "Hello, Alice!"
JavaScript

In this example, we’re using the apply method to call the greet function with a specific this value (person) and two arguments (“Hello” and “!”), provided as an array.

The bind() Method

The bind() method creates a new function that, when called, has its this keyword set to the provided value. Here’s an example:

function greet(greeting, punctuation) {
  console.log(greeting + ", " + this.name + punctuation);
}

let person = {name: "Alice"};
let greetAlice = greet.bind(person, "Hello", "!");
greetAlice(); // Outputs: "Hello, Alice!"
JavaScript

In this example, we’re using the bind method to create a new function (greetAlice) that, when called, will call the greet function with a specific this value (person) and two arguments (“Hello” and “!”).

Predefined Functions in JavaScript

JavaScript provides several predefined functions that can be very handy. Here are a few examples:

The parseInt() Function

The parseInt() function parses a string and returns an integer. Here’s an example:

let str = "123";
let num = parseInt(str);
console.log(num); // Outputs: 123
JavaScript

In this example, we’re using the parseInt function to convert a string (“123”) into an integer (123).

The parseFloat() Function

The parseFloat() function parses a string and returns a floating point number. Here’s an example:

let str = "123.456";
let num = parseFloat(str);
console.log(num); // Outputs: 123.456
JavaScript

In this example, we’re using the parseFloat function to convert a string (“123.456”) into a floating point number (123.456).

Wrapping Up


JavaScript functions are a powerful tool that allow us to write reusable and efficient code. We’ve covered a lot of ground in this tutorial, from defining and calling functions, to understanding function scope, to using arrow functions, default parameters, rest parameters, spread syntax, function methods, and predefined functions. Keep practicing and experimenting with JavaScript functions, and you’ll become a JavaScript pro in no time!

Frequently Asked Questions (FAQ)

  1. What are functions in JavaScript?

    Functions in JavaScript are reusable blocks of code that perform a specific task.

  2. What are the 3 types of functions in JavaScript?

    The three types of functions in JavaScript are named functions, anonymous functions, and arrow functions.

  3. What are the most used JavaScript functions?

    Some of the most used JavaScript functions are console.log(), alert(), parseInt(), parseFloat(), and Array.prototype.map().

  4. When to use a JavaScript function?

    You should use a JavaScript function when you want to perform a specific task multiple times, or when you want to organize your code into reusable pieces.

  5. How to define a function in JavaScript?

    You can define a function in JavaScript using the function keyword, followed by the name of the function, parentheses (), and curly braces {}. Inside the curly braces, you write the code that will be executed when the function is called.

Related Tutorials

Happy coding, and remember, practice makes perfect!

Scroll to Top