There are six practice tests with preparation questions from all knowledge areas.
Every question has an explanation and a Try-It-Yourself-Code
which you can run to better understand the topic.
You can download the Try-It-Yourself-Code for all questions.
(The download link will be in your welcome message.)
understand the fundamental programming concepts, such as: interpreting and the interpreter, compilation and the compiler, client-side vs. server-side programming;
have a basic knowledge of how to set up and use a basic programming environment (online or local)
Variables, Data Types, and Type Casting
have the knowledge and skills to work with variables, i.e. naming, declaring, initializing and modifying their values;
understand concepts such as scope, code blocks, shadowing, hoisting;
know the basic properties of primitive data types such as boolean, number, bigint, undefined, null, and be able to use them;
be familiar with the basic properties of the primitive data type string, including string literals – single or double quotes, escape character, string interpolation, basic properties and methods;
know the basic properties of complex data types such as Array and Object (treated as a record) and be able to use them in practice.
Operators and User Interaction
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.
Control Flow – Conditional Execution and Loops
be able to force conditional execution of a group of statements (make decisions and branch the flow) using if-else and switch commands;
be able to force a group of statements to repeat in a loop using the for, while, and do-while commands, using both dependent and independent conditions on the number of iterations;
understand and be able to use loop-specific break and continue instructions;
be able to use the for-in statement to iterate over properties of an object;
be able to use the for-of statement to walk through the elements of an array.
be able to declare and call functions;
know how to pass call arguments to a function and return the result of its operation from it;
understand the concept of a local variable and the effect of shadowing variables with the same names within a function;
know that a function in JS is a first-class member and be able to take advantage of this by declaring functions using function expression and passing functions as arguments to calls of other functions;
understand the concept of recursion in the context of functions and be able to solve simple programming problems by using it;
have a basic understanding of the callback function and be able to use it asynchronously in conjunction with the setTimeout and setInterval methods;
have a clear understanding of arrow function notation and be able to write functions alternatively as a regular declaration, a function expression, and an arrow function.
Errors, exceptions, debugging, and troubleshooting
understand the differences between syntactic, semantic, and logical errors;
understand the concept of an exception and distinguish between the basic exceptions generated by JS when an error occurs: SyntaxError, ReferenceError, TypeError, RangeError;
have the ability to handle exceptions using the try-catch-finally statement;
be able to generate their own exceptions using the throw statement;
have the skills to use the debugger for basic analysis of their own code, including: step-by-step execution, viewing and modifying variables, and measuring code execution time.