Overview
JSA – Certified Associate JavaScript Programmer Certification
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.
Exam Specifications
Formal: None
Recommended: JSE – Certified Entry-Level JavaScript Programmer (JSE-40-0x)
Exam Specifications
The JSA – Certified Associate JavaScript Programmer certification exam covers the following topic areas and measures the following skills:
- be able to create objects using a variety of techniques, including literals, constructors and factories;
- be able to refer to object fields, including nested ones, with both dot notation and bracket notation;
- be able to alter objects as required, including by adding, deleting, and modifying properties and methods;
- know how to verify the presence of object fields, enumerate them, and influence the configuration of an object and individual fields (e.g. by blocking the possibility to modify them)
- understand that objects are stored in variables as references and know how this affects manipulating them in practice (e.g. when comparing objects)
- know what the context of a method call is and be able to use the keyword this in practice;
- understand what an object prototype is, what inheritance using a chain of prototypes is and how it can be used, for example, to modify the properties of a group of related objects.
- be familiar with the basic set of built-in objects of the JS language;
- understand the difference between primitive types and their corresponding wrapper objects, know the basic properties and methods of these objects, and be able to use autoboxing in practice;
- be able to handle Array data to an advanced degree, using such methods as filtering, sorting, reducing, mapping, searching, merging, etc.
- be able to use the destructuring assignment and spread operator in their work with arrays;
- know in which situations objects of the Map and Set types can be used for data storage as an alternative to Array and Object, declare them, and manipulate their elements;
- understand the JSON format and be able to convert objects and arrays to and from this format;
- be able to use the methods provided by the built-in Math object to perform basic mathematical calculations;
- be able to take advantage of basic regular expressions (using the RegExp type) to parse character strings;
- be able to extend the built-in JS types with new properties and methods.
- know what operators are and how we classify them (by type of operands, by number of operands, etc.)
- be able to use assignment, arithmetic, logical, and comparison operators in practice;
- have an understanding of the operation of the conditional operator and the typeof, instanceof, and delete operators;
- understand what the precedence and associativity of basic operators are and be able to influence it by means of bracket grouping;
- be able to perform basic two-way communication with the program user using the alert, confirm, and prompt dialog boxes.
- know and be able to use in practice such mechanisms related to functions as: Extended Parameter Handling (default parameter values, rest parameter, spread operator), Recursion (closure, first-class functions), Forwarding calls (apply, call, bind), Decorating functions (wrappers, higher order functions)
- understand the concept of lazy evaluation, and be able to use generators and iterators in practice;
- clearly understand when asynchronous programming techniques should be used;
- know how to use callback functions in practice to solve problems that require asynchronous operations;
- understand the Promise mechanism and be able to use it as an alternative to callback functions;
- understand the operation of the async function in conjunction with the await keyword and be able to use it to handle promises.
JSA Certification Holder Profile
The holder of the JSA – Certified Associate JavaScript Programmer certification demonstrates the following skills and expertise:
- knows the syntax and properties of the core JavaScript language to an advanced level, which, among other things, enables them to freely operate with objects and classes;
- is skilled in the advanced use of functions, including asynchronous programming and the use of generators and iterators;
- knows a complete set of data types and a basic set of built-in JavaScript objects, which allows them to freely choose the means to solve algorithmic and programming problems;
- thinks algorithmically and can analyze and model a problem using an objective conceptual apparatus;
- designs, develops, and improves JavaScript programs using, among others, classes and objects;
- understands a programmer's work in the software development process and the role of fundamental development tools;
- can create and develop their own programming portfolio.