About the Exam

Read on for details about the Salesforce JavaScript Developer Exam.

  • Content: 60 multiple-choice/multiple-select questions, and up to five non-scored questions
  • Time allotted to complete the exam: 105 minutes
  • Passing score: 65%
  • Version: Exam questions align to the Summer '22 release
  • Registration fee: US$200, plus applicable taxes as required per local law
  • Retake fee: $100, plus applicable taxes as required per local law
  • Delivery options: Proctored exam delivered onsite at a testing center or in an online proctored environment. Click here for information on scheduling an exam.
  • References: No hard-copy or online materials may be referenced during the exam.
  • Prerequisite: None


Exam Guide

Trailhead Exam Link

Variables, Types, and Collections: 23%

  • 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.

Objects, Functions, and Classes: 25%

  • 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.

Browser and Events: 17%

  • 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.

Debugging and Error Handling: 7%

  • Given a scenario, handle errors properly.
  • Given code to be debugged, use the console and breakpoints.
  • Asynchronous Programming: 13%
  • Given a scenario, apply asynchronous programming concepts.
  • Given a scenario, use event loop and event monitor or determine loop outcomes.

Server Side JavaScript: 8%

  • 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.

Testing: 7%

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

Course Curriculum

  1. Part I: Variables, Types, and Collections: 23%

  2. Part II: Objects, Functions, and Classes: 25%

  3. Part III: Browser and Events: 17%

  4. Part IV: Debugging and Error Handling: 7%

  5. Part V: Asynchronous Programming: 13%

  6. Part VI: Server Side JavaScript: 8%

About This Course

  • $39.99
  • 7 lessons

Student Reviews

5 star rating

Very Comprehensive and Helpful!!

Eve Chalim

2025-06-10

2025-06-10

Read Less
5 star rating

Good resource for Salesforce exams!

Aurora Taylor

2025-03-01

2025-03-01

Read Less
5 star rating

Excelent

Oktana Admin

2025-03-21 I passed my certification with 90% today, Thank you so much for helping me to aprove

2025-03-21 I passed my certification with 90% today, Thank you so much for helping me to aprove

Read Less

Why Choose Us?

  • Proven for a 98% Pass Rate

    Stop wondering if your study materials are enough. We're engineered for success, built from years of expert analysis of actual past exams. We don't just guess – our data-driven approach delivers unmatched accuracy and a proven 98% pass rate.

  • 100% Money-Back Guarantee

    We believe wholeheartedly in our practice tests. But if, despite using it diligently, you don't pass your exam, we will promptly refund your entire purchase price. It's our commitment to your success and your complete satisfaction.

  • Stay Ahead, Stay Updated

    After your purchase, you will have access to the course for one year. We will automatically provide the latest version as soon as there are changes to the exams, and the updated materials will be seamlessly integrated into your purchased course.

What Will You Get?

Upon purchase, you will receive one year of access to the practice tests for your chosen certification. The questions are organized into various sections according to the exam guidelines, allowing you to assess your knowledge. Additionally, explanations are provided after each question to enhance your understanding.

Example Questions

Question 1:

Refer to the code below:

01  const monthName = 'July';

02  const year = 2019;

03  if (monthName === 'July') {

04      year = 2020;

05  }

A developer receives feedback from the Tech Lead that the code gives an error.

Which line edit should the developer make so this code runs?

A.    03 if (monthName === July) {

B.    02 const year = '2019';

C.    02 let year = 2019;

D.    03 if (monthName == July) {

Answer: C

Question 2:

A developer uses the code below to format a date.

01  const date = new Date(2020, 11, 10);

02  const dateDisplayOptions = {

03      year: 'numeric',

04      month: 'long',

05      day: 'numeric'

06  };

07

08  const formattedDate = date.toLocaleDateString('en', dateDisplayOptions);

After executing, what is the value of formattedDate?

A.    December 10, 2020

B.    November 11, 2020

C.    October 11, 2020

D.    November 10, 2020

Answer: A

Question 3:

Refer to the code below:

01  let foodMenul = ['Pizza', 'Burger', 'French fries'];

02  let finalMenu = foodMenul;

03  finalMenu.push('Garlic bread');

What is the value of foodMenul after the code executes?

A.    ['Garlic bread', 'Pizza', 'Burger', 'French fries']

B.    ['Garlic bread']

C.    ['Pizza', 'Burger', 'French fries', 'Garlic bread']

D.    ['Pizza', 'Burger', 'French fries']

Answer: C

Question 4:

Considering type coercion, what does the following expression evaluate to: true + 3 + '100' + null?

A.    '3100null'

B.    104

C.    4100

D.    '4100null'

Answer: D

Question 5:

Given two expressions var1 and var2, what are two valid ways to return the concatenation of the two expressions and ensure it is a data type string? Choose 2 answers

A.    String.concat(var1 + var2)

B.    String(var1).concat(var2)

C.    var1.toString() + var2.toString()

D.    var1 + var2

Answer: A, C

Question 6:

Refer to the code snippet below:

01  let array = [1, 2, 3, 4, 4, 5, 4, 4];

02  for (let i = 0 ; i< array.length; i++) {

03      if (array[i] === 4) {

04        array.splice(i, 1) ;

05        i--;

06      }

07  }

What is the value of array after the code executes?

A.    [1, 2, 3, 4, 4, 5, 4]

B.    [1, 2, 3, 4, 5, 4, 4]

C.    [1, 2, 3, 5]

D.    [1, 2, 3, 4, 5, 4]

Answer: C

Question 7:

Refer to the code below:

const pi = 3.1415926;

What is the data type of pi?

A.    Float

B.    Decimal

C.    Double

D.    Number

Answer: D

Question 8:

A developer has the following array of student test grades:

let arr = [7,8,5,8,9];

The teacher wants to double each score and then see an array of the students who scored more than 15 points.

How should the developer implement the request?

A.    let arr1 = arr.map( ( num ) => num * 2 ).filter ( (val ) => val > 15);

B.    let arr1 = arr.mapBy( (num ) => {return num * 2 } ).filterBy ( (val ) => {return val > 15 });

C.    let arr1 = arr.map ( (num) => {num * 2}).filterBy((val) => {val >15});

D.    let arr1 = arr.filter((val) => { return val > 15} ).map((num) => { return num * 2});

Answer: A

Question 9:

Refer to the following array:

let arr = [1,2,3,4,5];

Which three options result in x evaluating as [3, 4, 5]? Choose 3 answers

A.    let x = arr.filter((a)=> { return a>2 });

B.    let x = arr.slice (2, 3) ;

C.    let x = arr.splice (2, 3) ;

D.    let x = arr.filter((a) => { a< 2 });

E.    let x = arr.slice (2) ;

Answer: A, C, E

Explanation: The slice() method returns a shallow copy of a portion of an array into a new array object selected from start to end (end not included) where start and end represent the index of items in that array. The original array will not be modified. The filter() method creates a new array with all elements that pass the test implemented by the provided function. The splice() method changes the contents of an array by removing or replacing existing elements and/or adding new elements in place.

Question 10:

Given the following code:

01  let X = null;

02  console.log(typeof x);

What is the output of line 02?

A.    null

B.    x

C.    object

D.    undefined

Answer: C

Discover your potential, starting today