copying references, cloning, and merging (the Object.assign method)
the spread operator and shallow cloning
the concept of deep cloning
JSA-41-01 1.7 – Explain and implement methods in code
function as an object property
defining methods in the object body and adding methods to existing objects
using the this keyword inside methods
JSA-41-01 1.8 – Explain and implement getters and setters
methods as properties
defining and using getters and setters (the get and set keywords)
JSA-41-01 1.9 – Organize and configure objects and properties
modifying attributes of objects and fields
using the methods Object.defineProperty, Object.preventExtensions, Object.seal, and Object.freeze
JSA-41-01 1.10 – Demonstrate different ways to create classless objects
the Factory pattern
the constructor function and the new operator
the Object.create method
JSA-41-01 1.11 – Explain and apply the concept of prototypes
prototype-based inheritance
object property __proto__
constructor function prototype property
using the setPrototypeOf method
Objectives covered by the block (7 exam items)
JSA-41-01 2.1 – Design classes and implement class declarations
normal class declarations (the class keyword)
class body (constructor, properties, methods)
a class as a first-class citizen – storing classes in variables and class expression
JSA-41-01 2.2 – Create objects from classes
creating an object based on a class (the new operator)
looking for a connection between an object and a source class (the instanceof operator)
JSA-41-01 2.3 – Explain and use class properties
defining properties inside class methods (constructor and regular methods)
direct declaration inside the class body
JSA-41-01 2.4 – Create and implement getters and setters
defining and using getters and setters (the get and set keywords)
JSA-41-01 2.5 – Explain and apply the concept of inheritance
class inheritance (the extends keyword)
shadowing methods and properties
using the super keyword in the constructor and in methods
JSA-41-01 2.6 – Explain and apply static members in code
the concept of static members
defining and using methods and properties associated with a class instead of an object
JSA-41-01 2.7 – Compare and contrast classes and constructors
similarity of classes to constructors
conversion of a class into an adequate constructor function and vice versa
Objectives covered by the block (12 exam items)
JSA-41-01 3.1 – Explain and use the Number constructor
creating Number objects from data of different types, including various string formats
converting numbers into different string formats
static properties and methods of the Number constructor (i.e. properties defining the basic ranges)
JSA-41-01 3.2 – Explain and use the String constructor
the string as an array of characters
case conversion methods
splitting the string
searching for and replacing substrings
padding and trimming
comparison of strings
JSA-41-01 3.3 – Explain and use the Date constructor
creating a Date object (constructor)
time zones and local time handling
getting current time
timestamp and using it to measure the time of code execution
time specification
operating on individual date and time components
JSA-41-01 3.4 – Describe and implement the concept of arrays
basic methods for managing an Array type collection (creating, merging, adding and removing items, passing through, the slice method, the splice method)
using the spread operator
destructuring assignments
JSA-41-01 3.5 – Explain and implement advanced array methods
methods using the functional approach: find, every, some, filter, sort, map and reduce
JSA-41-01 3.6 – Explain, implement, and process Set data type collections
the concept of set data structure and the Set object
basic methods and properties of Set objects (constructor, add, has, delete, clear, size)
walking through elements (for ... of, iterators)
the spread operator
JSA-41-01 3.7 – Explain, implement, and process Map data type collections
the concept of the map data structure and the Map object
basic methods and properties of Map objects (constructor, set, get, has, delete, clear, size)
walking through elements (for ... of, iterators)
the spread operator
JSA-41-01 3.8 – Implement objects as data structures
using an object as a regular dictionary-type data structure
item management
walking through data structures
the spread operator
JSA-41-01 3.9 – Use the JSON object to process data
basic concept of the JSON format (JavaScript Object Notation)
converting data to JSON (the JSON.stringify method)
parsing the JSON format and retrieving data (the JSON.parse method)
JSA-41-01 3.10 – Use the Math object to perform mathematical operations