Exam: JSA™ – Certified Associate JavaScript Programmer
Exam Version: JSA-41-01
Status: ACTIVE
The JSA exam consists of 40 single-select and multiple-select items that assess a candidate’s ability to work confidently with JavaScript objects, classes, built-in types and collections, and modern function/async patterns. Coverage centers on object manipulation, prototypal and class-based design, arrays and maps/sets, strings and numbers, dates and JSON, regular expressions, and asynchronous programming with callbacks, promises, and async/await
.
Each item is worth a maximum of 10 points. After completion, the candidate’s raw score is normalized and presented as a percentage.
The exam is organized into four blocks aligned with core JavaScript programming practices. Block weights indicate the relative importance of each area in the overall exam.
The table below summarizes the distribution of exam items and their respective weight in the total exam score.
Block Number
Block Name
Number of Items
Weight
1
Classless Objects
11
25%
2
Classes & Class-Based Approach
7
23%
3
Built-in Objects
12
27%
4
Advanced Functions
10
25%
TOTAL
40
100%
Last updated: September 22, 2025
Aligned with Exam JSA-41-01
11 objectives covered by the block → 11 exam items
Objective 1.1.1 Create objects using literals
Objective 1.2.1 Explain and use object properties
Objective 1.3.1 Compare and contrast dot and bracket notations
Objective 1.4.1 Test property existence and perform enumeration
in
operator and safe access.for...in
with filtering for own props.Object.keys()
, Object.values()
, Object.entries()
for iteration.Objective 1.5.1 Compare and contrast objects
Objective 1.6.1 Implement object copying mechanisms
Object.assign()
and spread for shallow clones.this
(1)Objective 1.7.1 Explain and implement methods in code
this
correctly in method contexts.Objective 1.8.1 Explain and implement getters and setters
get
and set
.Objective 1.9.1 Organize and configure objects and properties
Object.defineProperty()
.Object.preventExtensions()
, Object.seal()
, and Object.freeze()
.Objective 1.10.1 Demonstrate different ways to create classless objects
new
when needed.Object.create()
with explicit prototypes.Objective 1.11.1 Explain and apply the concept of prototypes
__proto__
/[[Prototype]]
and Function.prototype
.Object.setPrototypeOf()
when required.7 objectives covered by the block → 7 exam items
Objective 2.1.1 Design classes and implement class declarations
class
and define constructor, fields, and methods.Objective 2.2.1 Create objects from classes
new
and verify relationships with instanceof
.Objective 2.3.1 Explain and use class properties
Objective 2.4.1 Create and implement getters and setters
get
/set
in class bodies.Objective 2.5.1 Explain and apply the concept of inheritance
extends
and override members safely.super
in constructors and methods.Objective 2.6.1 Explain and apply static members in code
static
methods and properties on the class itself.Objective 2.7.1 Compare and contrast classes and constructors
12 objectives covered by the block → 12 exam items
Objective 3.1.1 Explain and use the Number
constructor
Objective 3.2.1 Explain and use the String
constructor
Objective 3.3.1 Explain and use the Date
constructor
Objective 3.4.1 Describe and implement the concept of arrays
Objective 3.5.1 Explain and implement advanced array methods
find
, every
, some
, filter
, sort
, map
, reduce
.Objective 3.6.1 Explain, implement, and process Set
collections
Objective 3.7.1 Explain, implement, and process Map
collections
Objective 3.8.1 Implement objects as data structures
Objective 3.9.1 Use the JSON
object to process data
JSON.stringify
and parse with JSON.parse
.Objective 3.10.1 Use the Math
object to perform operations
ceil
, floor
, round
, random
, min
, max
, abs
, pow
, log
and trigonometry.Objective 3.11.1 Explain and apply the concept of regular expressions
RegExp
or literals; use test
, exec
, match
, search
, replace
.Objective 3.12.1 Explain and implement the concept of extending built-in types
10 objectives covered by the block → 10 exam items
Objective 4.1.1 Organize and implement extended function parameter handling
Objective 4.2.1 Explain and use closures and IIFEs
Objective 4.3.1 Implement the mechanism for call forwarding
this
and use call
, apply
, bind
.Objective 4.4.1 Implement the mechanism for decorating functions
Objective 4.5.1 Explain, create, and implement generators and iterators
for...of
.Objective 4.6.1 Explain, organize, and handle asynchronous events using callbacks
Objective 4.7.1 Explain and apply the concept of promises
then
, catch
, finally
.Objective 4.8.1 Explain and apply advanced promise chaining techniques
Promise.all
, Promise.any
, Promise.race
.async
/await
(1)Objective 4.9.1 Use async
and await
to handle promises
try/catch
.Objective 4.10.1 Understand and implement asynchronous handling of network requests
XMLHttpRequest
and the Fetch API with proper async handling.Download JSA-41-01 Exam Syllabus in PDF
A Minimally Qualified Candidate (MQC) for the JSA exam is an individual with solid foundational skills in core JavaScript. The candidate can model data with objects and prototypes, use classes and inheritance appropriately, manipulate built-in types and collections, and implement modern function and asynchronous patterns to solve well-defined problems.
The MQC understands object creation and configuration, enumeration and cloning strategies, accessor patterns, class syntax and static members, arrays and functional array methods, maps/sets, dates, numbers, strings, JSON, regular expressions, higher-order functions, generators/iterators, callbacks, promises, and async/await
.
Block 1: Classless Objects
Minimum Coverage – the candidate can:
this
, define accessors, and configure mutability.Object.create()
, and prototypes.Block 2: Classes & Class-Based Approach
Minimum Coverage – the candidate can:
new
, apply inheritance with extends
, and use super
.Block 3: Built-in Objects
Minimum Coverage – the candidate can:
JSON
and use Math
utilities effectively.RegExp
and string methods.Block 4: Advanced Functions
Minimum Coverage – the candidate can:
async/await
, and network requests.To pass the JSA exam, a candidate should achieve a cumulative average score of at least 70% across all exam blocks.