JavaScript-Developer-I Practice Test Questions

Total 221 Questions


Last Updated On : 18-Jun-2025



Preparing with JavaScript-Developer-I practice test is essential to ensure success on the exam. This Salesforce SP25 test allows you to familiarize yourself with the JavaScript-Developer-I exam questions format and identify your strengths and weaknesses. By practicing thoroughly, you can maximize your chances of passing the Salesforce certification spring 2025 release exam on your first attempt.

Surveys from different platforms and user-reported pass rates suggest JavaScript-Developer-I practice exam users are ~30-40% more likely to pass.

A developer is creating a simple webpage with a button. When a user clicks this button for the first time, a message is displayed.
The developer wrote the JavaScript code below, but something is missing. The message gets displayed every time a user clicks the button, instead of just the first time.
01 function listen(event) {
02 alert ( ‘Hey! I am John Doe’) ;03 button.addEventListener (‘click’, listen);
Which two code lines make this code work as required?
(Choose 2 answers)



A. On line 02, use event.first to test if it is the first execution.


B. On line 04, use event.stopPropagation ( ),


C. On line 04, use button.removeEventListener(‘ click” , listen);


D. On line 06, add an option called once to button.addEventListener().





C.
  On line 04, use button.removeEventListener(‘ click” , listen);

D.
  On line 06, add an option called once to button.addEventListener().

Explanation:

To ensure the button’s handler only runs once, you must either remove the listener after it fires or use the built-in “once” option. On line 04, calling

button.removeEventListener('click', listen);

stops further invocations. Alternatively, on line 06 you can pass { once: true } to addEventListener, which automatically deregisters the listener after the first click. Both approaches guarantee that your alert only appears on the first click without additional conditional logic.

Refer to the following code:
Let sampleText = ‘The quick brown fox jumps’;
A developer needs to determine if a certain substring is part of a string. Which three expressions return true for the given substring ?
(Choose 3 answers)



A. sampleText.includes(‘fox’);


B. sampleText.includes(‘ quick ’, 4);


C. sampleText.includes(‘ Fox ’, 3)


D. sampleText.includes(‘ fox ’);


E. sampleText.includes(‘ quick ’) !== -1;





A.
  sampleText.includes(‘fox’);

D.
  sampleText.includes(‘ fox ’);

E.
  sampleText.includes(‘ quick ’) !== -1;

Explanation:

All three expressions evaluate to true for the string ‘The quick brown fox jumps’. sampleText.includes('fox') directly finds “fox”; sampleText.includes(' fox ') locates the word “fox” surrounded by spaces; and although includes returns a boolean, writing sampleText.includes(' quick ') !== -1 still yields true because true !== -1. The other variants fail due to incorrect casing or start positions.

Given the code below:
Setcurrent URL ();
console.log(‘The current URL is: ‘ +url );
function setCurrentUrl() {
Url = window.location.href:
What happens when the code executes?



A. The url variable has local scope and line 02 throws an error.


B. The url variable has global scope and line 02 executes correctly.


C. The url variable has global scope and line 02 throws an error.


D. The url variable has local scope and line 02 executes correctly.





B.
  The url variable has global scope and line 02 executes correctly.

Explanation:

url is implicitly declared without let/const/var, making it a global variable.
Line 2 accesses the global url after setCurrentUrl() assigns window.location.href to it.

A developer is required to write a function that calculates the sum of elements in an array but is getting undefined every time the code is executed. The developer needs to find what is missing in the code below.
Const sumFunction = arr => {
Return arr.reduce((result, current) => {
//
Result += current;
//
), 10);
);
Which option makes the code work as expected?



A. Replace line 02 with return arr.map(( result, current) => (


B. Replace line 04 with result = result +current;


C. Replace line 03 with if(arr.length == 0 ) ( return 0; )


D. Replace line 05 with return result;





D.
  Replace line 05 with return result;

Explanation:

The callback passed to reduce must return the updated accumulator on each iteration. In the original code, you increment result but never return it, so the next iteration sees undefined. By adding return result; at line 05, each accumulated value is correctly passed forward, and the final sum is computed as expected.

Developer creates a new web server that uses Node.js. It imports a server library that uses events and callbacks for handling server functionality. The server library is imported with require and is made available to the code by a variable named server. The developer wants to log any issues that the server has while booting up. Given the code and the information the developer has, which code logs an error at boost with an event?



A. Server.catch ((server) => {
console.log(‘ERROR’, error);
});


B. Server.error ((server) => {
console.log(‘ERROR’, error);
});


C. Server.on (‘error’, (error) => {
console.log(‘ERROR’, error);
});


D. Try{
server.start();
} catch(error) {
console.log(‘ERROR’, error);





C.
  Server.on (‘error’, (error) => {
console.log(‘ERROR’, error);
});

Explanation:

Node.js event emitters expose an error event that you listen for via server.on('error', handler). This callback is invoked whenever the server library emits an error during startup or operation. Neither .catch nor .error are valid event-registration methods on an EventEmitter, and a simple try/catch won’t catch asynchronous errors emitted later.

Given the following code:
Let x =(‘15’ + 10)*2;
What is the value of a?



A. 3020


B. 1520


C. 50


D. 35





A.
  3020

Explanation:

In JavaScript, adding a number to a string concatenates: '15' + 10 yields '1510'. Multiplying that string by 2 coerces it to the number 1510, resulting in 3020. Thus the expression evaluates to 3020.

A developer creates an object where its properties should be immutable and prevent properties from being added or modified. Which method should be used to execute this business requirement?



A. Object.const()


B. Object.eval()


C. Object.lock()


D. Object.freeze()





D.
  Object.freeze()

Explanation:

Object.freeze(obj) makes an object immutable: it prevents adding, deleting, or modifying properties on that object. Neither Object.const, Object.lock, nor Object.eval exist in JavaScript.

Given the following code:
document.body.addEventListener(‘ click ’, (event) => {
if (/* CODE REPLACEMENT HERE */) {
console.log(‘button clicked!’);
)
});
Which replacement for the conditional statement on line 02 allows a developer to correctly determine that a button on page is clicked?



A. Event.clicked


B. e.nodeTarget ==this


C. event.target.nodeName == ‘BUTTON’


D. button.addEventListener(‘click’)





C.
  event.target.nodeName == ‘BUTTON’

Explanation:

Within a delegated click handler on document.body, event.target.nodeName === 'BUTTON' reliably detects when the actual element clicked is a <button>. event.target refers to the deepest element clicked, and nodeName returns its tag name in uppercase.

Refer to the expression below:
Let x = (‘1’ + 2) == (6 * 2);
How should this expression be modified to ensure that evaluates to false?



A. Let x = (‘1’ + ‘ 2’) == ( 6 * 2);


B. Let x = (‘1’ + 2) == ( 6 * 2);


C. Let x = (1 + 2) == ( ‘6’ / 2);


D. Let x = (1 + 2 ) == ( 6 / 2);





A.
  Let x = (‘1’ + ‘ 2’) == ( 6 * 2);

Explanation:

By concatenating with a space—('1' + ' 2') yields '1 2', which cannot convert to a valid number, so the comparison '1 2' == 12 becomes NaN == 12, which is false. All other options still coerce to matching numeric values and evaluate to true.

A developer wants to set up a secure web server with Node.js. The developer creates a directory locally called app-server, and the first file is app-server/index.js Without using any third-party libraries, what should the developer add to index.js to create the secure web server?



A. const https =require(‘https’);


B. const server =require(‘secure-server’);


C. const tls = require(‘tls’);


D. const http =require(‘http’);





A.
  const https =require(‘https’);

Explanation:

To spin up an HTTPS server in Node.js without third-party modules, you must use the built-in https package:

const https = require('https');
// …load TLS key/cert…
https.createServer(options, handler).listen(443);

Neither http, tls, nor a fictional secure-server module provides the full HTTPS interface by itself.

Page 2 out of 23 Pages
JavaScript-Developer-I Practice Test Home