Skip to content

JavaScript Functions, NFE, and Objects

Introduction to JavaScript Functions

JavaScript functions are fundamental to the language, serving as reusable blocks of code that execute tasks or compute values. This guide covers their core mechanics, modern syntax, and practical applications.

Understanding Functions in JavaScript

A JavaScript function is a reusable block of code that performs a task or calculates a value. It must be defined within a scope to be callable.

Function Declaration

A function declaration, or function statement, consists of the function keyword, followed by:

  • The name of the function.
  • A list of parameters to the function, enclosed in parentheses and separated by commas.
  • The JavaScript statements that define the function, enclosed in curly brackets, {}.

Output appears here after Run.

Function Expression

A function can also be defined using an expression. A function expression can be stored in a variable. After a function has been stored in a variable, the variable can be used as a function.


Output appears here after Run.

Immediately Invoked Function Expressions (IIFE)

An IIFE is a JavaScript function that runs as soon as it is defined.


Output appears here after Run.

Arrow Functions: A Modern Twist

Introduced in ES6, arrow functions offer a concise syntax for writing function expressions. They are especially useful for short functions that return a single expression. Note that unlike regular functions, arrow functions do not have their own this binding and inherit it from the enclosing scope.


Output appears here after Run.

Understanding Function Objects and NFE

In JavaScript, functions are first-class objects that can be called. They have built-in methods and can be stored as values. A Named Function Expression (NFE) is a function expression that includes an internal identifier.

Named Function Expressions (NFE)

NFE allows a function to refer to itself internally, which is advantageous for recursion (check JavaScript: Recursion and Stack), event handlers, and callbacks. Here's an example:


Output appears here after Run.

Practical Applications of JavaScript Functions

JavaScript functions are versatile. Below are some practical examples showcasing their power.

Data Processing

Functions can transform arrays or objects, filter data, and more. Here's a function that filters an array for unique values using a Set for optimal performance.


Output appears here after Run.

Event Handling

Functions are pivotal in responding to user actions. Here's an example of attaching a function to an HTML button click event.


html
<button onclick="alert('Button clicked!')">Click Me</button>

Result

Asynchronous Programming

JavaScript functions, especially arrow functions, are widely used in asynchronous programming, like promises and async/await.


Output appears here after Run.

Conclusion

JavaScript functions are a core language feature, enabling code reuse, event handling, and data processing. Mastering them allows you to solve a wide range of programming challenges efficiently. Experiment with the examples above to solidify your understanding.

Practice

What is an NFE (Named Function Expression) in JavaScript?

Dual-run preview — compare with live Symfony routes.