JSA™ – Certified Associate JavaScript Programmer Certification

(Exam JSA-41-0x)

JSA™ – Certified Associate JavaScript Programmer certification is a professional credential that demonstrates the candidate’s proficiency in Object-Oriented Analysis, Design and Programming (OOA/OOD/OOP), as well as the more advanced use of functions in the JavaScript language.

The certification holder understands the Object-Oriented Programming approach to JavaScript (objects: literals, properties, dot and bracket notation, property existence tests, property enumeration; object features: references; methods, property/object configuration, prototypes; classes: design, declarations, properties, getters, setters, inheritance, static members, constructors), is skilled in the advanced use of built-in objects, including simple data types and their constructors, composite data types, and some of the most useful objects (JSON, Math, RegExp, extending built-in types), is proficient in using the mechanism of advanced functions in JavaScript, such as recursion, forwarding calls, decorators, functional programming, generators, iterators, and asynchronous programming, including callback functions and promises.

Moreover, the certified individual knows how to adopt the best programming practices, techniques, and conventions in JavaScript programs; thinks algorithmically, analyzes and models problems using an objective conceptual apparatus; understands the role and work of a programmer in the software development process, and knows how to use the most fundamental development tools.

JSA certified ensures that the individual is acquainted with the essential means provided by the JavaScript language to enable them to design, develop, deploy, refactor, and maintain JavaScript programs and applications; analyze and model real-life problems in Object-Oriented Programming categories; create and develop their own programming portfolio; and start their own studies at a professional level, and to continue their further professional development.

JSA Badge

JSA™ Exam Information

SPECIFICATIONS ITEM DESCRIPTION
Exam name JSA™ – Certified Associate JavaScript Programmer
Exam Code & Current Exam Versions JSA-40-01 – Status: Active
Prerequisites No formal prerequisites.
Recommended: JSE – Certified Entry-Level JavaScript Programmer (JSE-40-01)
Exam Duration 65 minutes – Tutorial/NDA: 5 minutes, Exam: 60 minutes
Number of Questions 40
Format Single-select and multiple-select items
Passing Score 70%
Languages English, Spanish
Cost

Exam – from $295
Exam + Retake – from $345

Delivery Channel OpenEDG Testing Service – TestNow™
OnVUE Online Proctoring (online, proctored), Pearson VUE Testing Centers (on-site, proctored)
Testing Policies JSA Testing Policies
Exam Syllabus JSA Exam Syllabus
Associated Certifications Associate: JSA™ – Certified Associate Data Analyst with Python
Free Learning Resources

OpenEDGJavaScript Essentials 2

Cisco Networking Academy – We recommend starting with JavaScript Essentials 1 to build a solid foundation, followed by JavaScript Essentials 2 to apply those concepts using JavaScript.




Exam Scope

The JSA – Certified Associate JavaScript Programmer certification exam covers the following topic areas and measures the following skills:

  • Create objects using literals, constructor functions, factories, and Object.create();
  • Refer to properties (including nested) with dot and bracket notation; add, modify, and delete properties and methods;
  • Verify property presence and enumerate keys/values safely using in, for...in (own-filtered), and Object.keys/values/entries;
  • Understand reference identity vs. deep comparison and how this affects object equality and mutation;
  • Copy and clone objects using references, Object.assign(), spread, and deep-clone strategies;
  • Define methods and use the this context correctly in method calls;
  • Implement getters and setters to validate or compute state;
  • Configure objects and properties via descriptors and mutability controls (Object.defineProperty, preventExtensions, seal, freeze);
  • Apply prototypal inheritance, recognize [[Prototype]]/__proto__, work with Function.prototype, and set prototypes with Object.setPrototypeOf;

  • Declare classes with constructors, fields, and methods; use class expressions and treat classes as first-class values;
  • Instantiate objects with new and verify relationships using instanceof;
  • Define and initialize class fields in constructors or with class field syntax;
  • Create getters and setters inside classes for computed/validated properties;
  • Implement inheritance with extends, override members, and call parent logic via super;
  • Define and use static properties and methods on the class itself;
  • Relate class syntax to constructor/prototype patterns and understand their equivalence;

  • Use Number for conversions and formatting; apply key static properties and methods;
  • Manipulate strings (case, split, search/replace, pad/trim, compare) with String APIs;
  • Construct and manipulate dates/times with Date, handle UTC vs. local time, measure elapsed time;
  • Work with arrays: create, merge, add/remove, slice/splice, spread, and destructure;
  • Apply functional array methods: find, every, some, filter, sort, map, reduce;
  • Use Set for unique collections: construct, add/has/delete/clear/size, iterate, and spread;
  • Use Map for key–value collections: construct, set/get/has/delete/clear/size, and iterate;
  • Model dictionaries with plain objects and iterate entries effectively;
  • Serialize and parse data with JSON.stringify and JSON.parse;
  • Perform calculations with Math (rounding, random, min/max, abs, pow, log, trig);
  • Use regular expressions via RegExp and string methods (test, exec, match, search, replace);
  • Extend built-in prototypes responsibly and understand the risks of doing so;

  • Handle parameters with defaults, rest, and spread; simulate named parameters with objects/destructuring;
  • Use closures and Immediately Invoked Function Expressions (IIFEs);
  • Control call context and forwarding with call, apply, and bind;
  • Compose decorators and higher-order functions; pass/return functions;
  • Create and consume generators; implement custom iterables and iterators;
  • Design asynchronous flows with callbacks and handle errors appropriately;
  • Create and chain promises; handle outcomes with then, catch, and finally;
  • Apply promise patterns such as Promise.all, Promise.any, and Promise.race;
  • Write async functions and manage control flow with await and try/catch;
  • Perform asynchronous network requests using XMLHttpRequest and the Fetch API;



JSA™ Certification Holder Profile

The holder of the JSA™ – Certified Associate JavaScript Programmer certification demonstrates the following skills and expertise:

  • knows the syntax of the core JavaScript language to a degree that allows them to work with variables, operators, flow control, and functions;
  • knows the basics of the JavaScript data types system, distinguishing between primitive and complex types, and is able to choose a type adequate to their needs;
  • thinks algorithmically and can analyze a problem using a programmatic conceptual apparatus;
  • can choose a data type adequate to the problem being solved, and use suitable flow control means;
  • can design, develop, and improve very simple JavaScript programs;
  • can interpret and handle basic exceptions related to errors in program execution;
  • understands a programmer's work in the software development process and the role of fundamental development tools;
  • knows how a program is interpreted and executed in an actual computer environment, local or remote;
  • can create and develop their own programming portfolio.