JavaScript Developer
The Salesforce Certified JavaScript Developer credential tests your knowledge of JavaScript as a language, not just Salesforce-specific tooling. This exam is a genuine JavaScript depth-check: ES6+ syntax, closures, prototype chains, the event loop, async/await, DOM APIs, Node.js fundamentals, and Jest. If you have been writing JavaScript for a year or two but never formally studied the language internals, this is the exam that will fill those gaps. It is a great resume item for any developer working in the Salesforce ecosystem.
3-Step Path to Passing
- 1
Complete the JavaScript Developer Trailmix
Start here. The official Salesforce trailmix walks you through every topic on the exam. It is not exhaustive on its own, but it surfaces the Trailhead modules that cover the core language concepts you need. - 2
Attempt Practice Exams
I recommend my own practice exams, but I have linked other options in the Study Resources section below. The questions on this exam are code-reading style, so practicing with realistic code snippets is essential. - 3Exams run every day at all hours. No need to schedule far in advance. Schedule when you feel ready, ideally within a week of finishing your practice exams.
Core Resources
Exam Overview
Questions
65
60 scored + 5 unscored
Duration
105 min
1 hour 45 minutes
To Pass
65%
Minimum Score
Question Format
Scored
92%60questions
Unscored
8%5questions
Exam Details
Pricing
$200 registration · $100 retake
Delivery
Online proctored or at a testing center
Experience
1-2 years of JavaScript development recommended
Prerequisites
No prerequisites required
Exam Topics
Each topic section shows the topic weight, learning objectives, and links to study resources.
Variables, Types, and Collections23%
var, let, and const scoping and hoisting, temporal dead zone, type coercion, truthy and falsy evaluation, template literals, destructuring, spread and rest operators, array methods, and JSON parsing.
- Given a scenario, write code to create variables and initialize them correctly.
- Given a business requirement, utilize strings, numbers, and dates effectively.
- Given a scenario or example, demonstrate awareness of type coercion and its effects.
- Given a specific scenario, distinguish truthy or falsey evaluations.
- Given a list of data, demonstrate data manipulation with arrays.
- Given a JSON response, demonstrate how to operate the JSON object.
Resources
Objects, Functions, and Classes25%
Function declarations vs. expressions, arrow functions, this binding, call/apply/bind, prototype chains, object creation patterns, ES6 class syntax, private fields, inheritance, ES6 modules, and decorators.
- Given a business requirement, locate the best function implementation.
- Given a business requirement, apply fundamentals of object implementation to solve the business requirement.
- Given a business requirement, apply fundamentals of class implementation to solve the business requirement.
- Given a JavaScript module, give examples of how to use the module.
- Given a JavaScript decorator, give examples of how to use the decorator.
- Given a block of code, analyze the variable scope and the execution flow.
Resources
Browser and Events17%
DOM traversal and manipulation, event listeners, bubbling and capturing propagation, stopPropagation vs. preventDefault, browser-specific APIs including fetch, localStorage, sessionStorage, and the History API.
- Given a business requirement, utilize Events, event handlers, and propagation.
- Given a business requirement, evaluate and manipulate the DOM.
- Given a scenario, utilize the Browser Dev Tools to investigate code behavior.
- Given a scenario and requirements, utilize browser specific APIs.
Resources
Debugging and Error Handling7%
try/catch/finally, custom Error subclasses, structured error propagation, console API methods, Chrome DevTools breakpoints, and debugging async code.
- Given a scenario, handle errors properly.
- Given code to be debugged, use the console and breakpoints.
Resources
Asynchronous Programming13%
Call stack, task queue, microtask queue, the event loop model, Promises, Promise.all/allSettled/race, async/await, error propagation in async code, and tracing execution order across async boundaries.
- Given a scenario, apply asynchronous programming concepts.
- Given a scenario, use event loop and event monitor or determine loop outcomes.
Resources
Server Side JavaScript8%
Node.js core modules, npm and npx package management, package.json semantics, the require vs. ES module distinction, Express framework basics, and when to use Node.js for server-side solutions.
- Given a scenario and requirements, infer which Node.js implementation is a good solution.
- Given a scenario and requirements, infer which Node.js CLI command is a good solution.
- Know the core Node.js modules and given requirements, infer which Node.js library/framework is a good solution.
- Given a scenario and requirements, distinguish which Node.Js Package Management solution is the most fitting.
Resources
Testing7%
Jest test structure with describe/it/expect, jest.fn() and jest.spyOn() mocking, toBe vs. toEqual matchers, unit vs. integration test distinctions, and identifying brittle or ineffective tests.
- With a block of code and the associated Unit Test, determine where the test is ineffective and modify it to make it more effective.
Resources
Have suggestions for this resource pack?
To help make this the ultimate resource compilation for the exam, please give your thoughts in the free Cert++ Discord.
Suggest a resource