O'Reilly logo

Learning JavaScript, 2nd Edition by Shelley Powers

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

Chapter 5. Functions

JavaScript functions are a key part of the language, but they’re not quite what they seem. They look like they would belong in the family of statements, but actually they’re objects just like all the others we covered in the preceding chapter. You can define a function, create a new one, and even print one out.

Thanks to this functionality, you can assign a function to a variable or to an array element, or even pass one as an argument to another function call. This makes a function a very flexible and useful object, but also a confusing one for new JavaScript developers.

There are three approaches to creating functions in JavaScript: declarative/static, dynamic/anonymous, and literal. It’s important to understand the impact of each type of declaration before you use it.

Declarative Functions

The most common type of function uses the declarative/static format. This approach begins with the function keyword, followed by the function name, parentheses containing zero or more arguments, and then the function body:

function functionname (param1, param2, ..., paramn) {
   function statements
}

The curly braces around the function’s statements are a requirement, even if the function body consists of only one statement.

Unless I’m creating a new library with new objects, or defining functions on the fly based on events, this is the syntax I use most often, and the syntax I’ve been using for chapter examples in the book to this point.

The declarative function is parsed once, when ...

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, interactive tutorials, and more.

Start Free Trial

No credit card required