Salesforce Javascript Developer I Certification Guide

The Javascript Developer I Certification is a credential developed for Salesforce professionals who have knowledge, skills, and experience implementing front-end and/or back-end JavaScript solutions on the Salesforce platform or the web stack in general, and are looking to verify their expertise to further advance their career in this department.

Key Facts

The exam is made up of 60 multiple choice questions

105 minutes to complete

The passing score is 65%

There are no prerequisites

Cost is USD $200 and the retake fee is is USD $100 if you are unsuccessful

This information will assist you if you’re interested in becoming Javascript Developer I certified and includes an overview of the core topics in the exam.

There are 7 areas of knowledge that are covered by the Salesforce Javascript Developer I certification.

They are covered by the Javascript Developer I training, but if you are not able to attend, then you will need to ensure you know the areas listed below well.



Variables, Types, and Collections


Objects, Functions, and Classes


Browser and Events


Debugging and Error Handling


Asynchronous Programming


Server Side JavaScript




Salesforce Javascript Developer I - Topics Weighting Chart

Javascript Developer I Topic Weighting Chart

Javascript Developer I
Certification Contents

The following are the core topic areas of the Javascript Developer I certification and what you’re expected to know:

Variables, Types, and Collections

This topic includes the following objectives:

  • Given a scenario, write code to create variables and initialize them correctly.

Creating and initializing variables correctly is an important first step. Variables are used to store data in JavaScript, such as numbers and text values. The name of a variable is called an identifier, and it must conform to certain naming rules. A variable can be declared using the var, let or const keyword. JavaScript deals with global and local variables. It is important to understand the difference. Variables can store values that conform to one of eight data types: Boolean, Number, String, BigInt, Symbol, Object, null, and undefined. The object data type is widely used and is important to understand the specific considerations when working with objects.

  • Given a business requirement, utilize strings, numbers, and dates effectively.

To utilize strings, numbers and dates effectively, it is important to understand details of these typesIn JavaScript, strings can be used to represent text. A string can be created as a primitive or an object. The String object provides access to various methods that can be used to get useful information or utilize strings. The length property of a string can be used to get the number of characters in the string. Strings are generally enclosed within single or double quotes, but they also support the use of backtick (`string`) character to create template literals. The Number type in JavaScript allows representing any number between -(253 − 1) and (253 − 1). The Number object provides access to methods that can be used to obtain useful information about a specified number or converting a string to a number and vice-versa. Dates can be created using the Date() constructor. Several methods are available to obtain individual components of dates or setting these components.

  • Given a scenario or example, demonstrate awareness of type coercion and its effects.

An awareness of type coercion and its effects is crucial when working with JavaScript. Type coercion is the process where a value is converted from one data type to another. Type coercion can be done either implicitly or explicitly. In implicit coercion, the conversion is automatically performed by the JavaScript engine. In explicit coercion, the conversion is manually performed by using functions such as Boolean(), String(), or Number().  It is important to be familiar with the operator types and the corresponding coercion they trigger to determine the effects of coercion in a given a scenario.

  • Given a specific scenario, distinguish truthy or falsey evaluations.

When working with comparisons, it is important to distinguish truthy and falsy values. A truthy is any value that evaluates to true in a Boolean context. On the other hand, a falsy is one of the eight values that are treated as false in a Boolean context. Falsy values are false, 0, -0, 0n, ‘’, null, undefined, and NaN. Equality operators are commonly used in JavaScript expressions that evaluate to truthy or falsy, which makes it necessary to understand the related considerations.

  • Given a list of data, demonstrate data manipulation with arrays.

Data manipulation using arrays is a common practice in JavaScript. An array is a list-like object that can be used to store multiple elements in a single variable. The numeric index of an array can be used to access a specific element of the array. Different loops can be utilized to iterate over an array. The Array object provides various methods that can be used for data manipulation. Some methods provide basica manipulation such as adding or removing elements, while other methods allow advanced data manipulation.

  • Given a JSON response, demonstrate how to operate the JSON object.

Working with data may require working with a JSON object. JSON stands for JavaScript Object Notation. It is a text-based data format that can be used to store and transmit data. It follows the JavaScript object syntax but exists as a string. The JSON object provides methods for serializing and deserializing data.

Salesforce Javascript Developer I - Variables, Types, and Collections

Objects, Functions, and Classes

This topic includes the following objectives:

  • Given a business requirement, locate the best function implementation.

Function implementation is a central part of any JavaScript coding. A function is a block of code that is defined once and then may be executed many times. Functions are of several different types and can be used to fit different design patterns and purposes. Functions are at the heart of JavaScript because of several key features. Functions are first class (treated as values). They can act as higher order functions (receive functions as arguments or return functions). They can create closures, which establish context for code execution. They are also important for asynchronous coding.

  • Given a business requirement, apply fundamentals of object implementation to solve the business requirement.

Because objects are everywhere in JavaScript, it is necessary to apply fundamentals of object implementation to solve requirements. An object is a data type that has properties. It is used to store keyed collections and more complex entities. The properties of an object can be accessed using the dot notation or the bracket notation and can be traversed using different techniques. A function that is defined as a property of an object is called a method. An object inherits from at least one other object, which is called the prototype. It is possible to define an object that inherits the properties and methods of another object.

  • Given a business requirement, apply fundamentals of class implementation to solve the business requirement.

Implementing classes is a useful pattern for solving requirements. A class can be created to create objects of the same kind in JavaScript. A class can be defined using a class declaration or class expression. An instance of a class can be created by using the ‘new’ keyword. Methods defined in the class can be invoked on a particular object of the class. A class can inherit the properties and methods of another class using the ‘extends’ keyword, which makes use of  prototype-based inheritance.

  • Given a JavaScript module, give examples of how to use the module.

Make use of modules to help structure code. A module is a file containing code with its own top-level scope. Javascript modules allow code to be structured and separated into different files that can include variables, functions and/or classes that are logically related, allowing for modular code development. In order to access features in a module from another module, they must be explicitly exported. The module that needs to access exported features from another module must import them using the import directive. Both imports and exports can be renamed.

  • Given a JavaScript decorator, give examples of how to use the decorator.

Make use of decorators to extend functionality of a function. A decorator is a wrapper function that can be used to extend the behavior of another function. It receives the original function as a parameter and returns a new function with the extended behavior. Decorators can also be used with classes and class methods, but they require a special syntax.

  • Given a block of code, analyze the variable scope and the execution flow.

Understanding scope and execution flow is critical to effective programming in JavaScript.  Scope defines which variables can be accessed. There are three types of scope, namely, global scope, function scope and block scope. Hoisting is a JavaScript behavior of moving variables and functions to the top of their scope before the start of code execution. Closures in JavaScript give access to an outer function’s scope from within an inner function. Execution flow refers to the order of execution of synchronous and asynchronous code in JavaScript with the help of the call stack, message queue, and event loop. An execution context is an environment where the code will be executed. The two main types of execution context are global execution context and function execution context.

Salesforce Javascript Developer I - Objects, Functions, and Classes

Browser and Events

This topic includes the following objectives:

  • Given a business requirement, utilize Events, event handlers and propagation.

In order to effectively solve business requirements, it is important to handle and work with events. An event is a specific action or occurrence on a web page that is sent to notify code, allowing it to respond in the desired manner. There are various types of events, such as mouse events, keyboard events, form events, and resource events. Event handlers are functions that are used to respond to events. There are two approaches for handling events: an event listener and an onevent handler, such as onclick. Understanding event propagation is important when utilizing events.

  • Given a business requirement, evaluate and manipulate the DOM.

Different JavaScript methods provide ways to evaluate and manipulate the DOM. The Document Object Model (DOM) represents the structure and content of an HTML document as objects and nodes. The DOM API allows accessing and manipulating the structure, style, and content of the web page. Methods are available for retrieving elements from the DOM and manipulating the DOM.

  • Given a scenario, utilize the Browser Dev Tools to investigate code behavior.

Utilizing browser development tools can help decipher code behavior. Chrome DevTools is a set of developer tools in the Chrome web browser that can be used to investigate code behavior and debug JavaScript code. It has various panels that can be utilized for debugging and inspecting code. These panels consist of the Elements panel, the Console panel, the Sources panel, and the Network panel which are all used for different purposes when working with code.

  • Given a scenario and requirements, utilize browser specific APIs.

Certain requirements may necessitate the use of browser specific APIs. Browser APIs are built-in constructs in web browsers that allow JavaScript developers to extend the functionality of web pages. For example, the DOM API can be used to manipulate the structure, style or content of a web page document. There are many other browser APIs, including Fetch API, Geolocation API, History API, Canvas API, URL API, and Web Storage API

Salesforce Javascript Developer I - Browser and Events

Debugging and Error Handling

This topic includes the following objectives:

  • Given a scenario, handle errors properly.

Proper error handling is an important aspect of any project. JavaScript errors, also called exceptions, are of eight different types. Exceptions are thrown by the JavaScript engine whenever there is a problem. This can cause the application to fail and requires proper handling. The try...catch statement is used to handle exceptions in a way that prevents the application from failing. An exception generates an Error object. The error object has properties that provide information about the exception.

  • Given code to be debugged, use the console and breakpoints.

The browser console tools can be used for code debugging. The console provides tools for displaying messages that can help debug code. The JavaScript Debugging pane can be used to set breakpoints, step through code, inspect the values of variables, and other tasks.

Salesforce Javascript Developer I - Debugging and Error Handling

Asynchronous Programming

This topic includes the following objectives:

  • Given a scenario, apply asynchronous programming concepts.

Applying asynchronous programming concepts is a key to most any project. Asynchronous programming allows executing code separately from the main application code without blocking it. It is used when the response of an operation is not immediately available. Asynchronous code is written using asynchronous callbacks or promises. An asynchronous callback is a function that is passed as an argument to another function that is executed in the background. A promise is an object that is returned by asynchronous code and represents the completion or failure of the asynchronous operation. The async/await syntax can be used to make it easier to work with promises.

  • Given a scenario, use event loop and event monitor or determine loop outcomes.

Understanding the event loop is key to determining outcomes of asynchronous code. JavaScript is a single-threaded programming language and is capable of performing only one task at a time. Asynchronous tasks are handled by processes outside the JavaScript engine. When an asynchronous function completes, and if a callback is provided, the callback method is placed in a message queue. The job of the event loop is to continuously check the call stack and the message queue. If the event loop sees that the call stack is empty and a callback is queued, it pushes the oldest message into the call stack for processing, and waits for the call stack to be empty again before fetching the next message. Events for a specific object can be monitored by executing the monitorEvents method in the command line of the Console panel.

Salesforce Javascript Developer I- Asynchronous Programming

Server Side JavaScript

This topic includes the following objectives:

  • Given a scenario and requirements, infer which Node.js implementation is a good solution.

Node.js is a back-end JavaScript runtime environment that can be used to execute JavaScript code outside a browser. It is important to understand when Node.js is a good solution. A single non-blocking process is utilized to run a Node.js app.  Node.js can be used to generate dynamic web page content, build real-time or single-page apps, and also develop APIs and microservices. Node.js comes with built in modules for addressing many programming problems. Node package manager (npm) can be used to install open-source packages that can be used for specific requirements that cannot be met by using the core Node.js modules.

  • Given a scenario and requirements, infer which Node.js CLI command is a good solution.

Node.js offers various command line options. To effectively work with Node.js, inferring proper CLI commands for different solutions is important. These include helpful runtime options, debugging commands, and multiple ways of executing scripts. It is also possible to pass command line arguments when executing a Node.js application. Various npm (node package manager) commands are also available for working with and installing packages.

  • Know the core Node.js modules and given requirements, infer which Node.js library/framework is a good solution.

Working with Node.js requires an understanding of the core modules and other modules available for a good solution.  When creating a Node.js application or web server, a developer can make use of three types of modules. These are core modules, local modules, and third-party modules. A core module is built-in and defined in the Node.js source. A local module is created locally by the developer in the application. Using a third-party module has certain advantages. There are hundreds of thousands of open-source modules available for various use cases in the npm registry. They offer predefined code and can be installed easily.

  • Given a scenario and requirements, distinguish which Node.Js Package Management solution is the most fitting.

Node Package Manager (npm) is the package manager for Node.js. Use npm to provide solutions to certain requirements. One can search for packages on the npm website and find information about them. The npm CLI offers many useful commands for package management. The package.json file is an important part of package management. The package.json file lists the dependencies and devDependencies of the package.

Salesforce Javascript Developer I - Server Side Javascript


This topic includes the following objective:

  • With a block of code and the associated Unit Test, determine where the test is ineffective and modify it to make it more effective.

Testing is a critical piece in JavaScript development and building effective unit tests is the skill that makes this happen. In order to determine the context and objective of a test, it is important to be familiar with the type of test being used and the test approach being implemented, such as Black-box testing or White-box testing. A developer should be able to build unit tests. A developer should also be able to understand what false-positives and false-negatives are and take steps to prevent these situations in a test. One should be able to identify ineffective test code and improve it to build a robust application.

Salesforce Javascript Developer I - Testing

To prepare successfully for the certification exam, we recommend to work through our

Javascript Developer I Study Guide and Javascript Developer I Practice Exams

Javascript Developer I
Study Guide

Every topic objective explained thoroughly.
The most efficient way to study the key concepts in the exam.

Javascript Developer I

Practice Exams

Test yourself with complete practice exams or focus on a particular topic with the topic exams. Find out if you are ready for the exam.


    1. Rielle G. Focus Team

      Great news, Darryl! Congratulations on clearing the certification exam! We are glad to know that we are able to help, cheers!

    1. FOF Moderator

      Hello Mahmod! We are glad to hear that you are now Salesforce certified for JD1. Your preparation and diligence surely paid off. Congratulations and the whole FOF Team is happy for your new milestone!

  1. Jebastan Nelson

    Hi Team, I am planning to take JD1 Certification and looking to order your materials, Have a question about the exam.
    In the Trailhead website, it is mentioned as this certificate has two steps
    1. Online exam
    2. Lightning Web Components Specialist – completion in Trailhead.

    Does it true ? because you have mentioned in Key facts section(above) as “There are no prerequisites” for this exam.
    please confirm.

  2. Viqas Hussain

    Managed to pass this exam at the first attempt today. I’ve been working with JS for over 10 years but still needed to study lol. The study and exam guide’s are great, the only problem I found in the exam was the confusing wording of questions.

    1. FOF Moderator

      Hi Viqas! We are glad to know that you have passed the JD1 Certification. Congratulations on this milestone. It is our honor to be able to prepare you well for the exam you had. Great job!

Copyright 2024 -  www.FocusOnForce.com

Copyright 2024 -  www.FocusOnForce.com


Not recently active