JSE-40-01 1.1 – Understand fundamental terms and definitions
interpreting and the interpreter
compilation and the compiler
client-side vs. server-side programming
JSE-40-01 1.2 – Set up the programming environment
basic development tools
online vs. local development environment (code editor, interpreter, debugger)
JSE-40-01 – 1.3 Explain client-side execution of JavaScript code
HTML fundamentals
embedding JavaScript code
executing code directly in the console
Objectives covered by the block (6 exam items)
JSE-40-01 2.1 – Use variables effectively
naming, declaring and initializing variables
changing values assigned to variables
constants
scope (blocks, shadowing, hoisting)
JSE-40-01 2.2 – Define, identify, and use primitive data types in code: boolean, number, bigint, undefined, null
the number range and its formats
the bigint range
boolean values
empty and unknown values (null or undefined)
JSE-40-01 2.3 – Define, identify, and use primitive data types in code: string
string literals – single and double quotes
the escape character
string interpolation
basic properties and methods: length, charAt, slice, split
JSE-40-01 2.4 – Perform type-casting operations
primitive construction functions: String, Number, BigInt, Boolean
primitive conversions
implicit conversions
JSE-40-01 2.5 – Define, identify, and use complex data types in code: Object
object as a record
object literals
getting and setting properties
JSE-40-01 2.6 – Define, identify, and use complex data types in code: Array
array as an example of a complex data type
basic properties and methods of arrays: length, indexOf, push, unshift, pop, shift, reverse, slice, concat
Objectives covered by the block (5 exam items)
JSE-40-01 3.1 – Recognize and proficiently utilize assignment, arithmetic, and string operators
definition of operators
assignment operators
arithmetic operators
compound assignment operators
JSE-40-01 3.2 – Identify and proficiently use logical and comparison operators
logical operators
compound assignment operators
comparison operators
JSE-40-01 3.3 – Recognize and effectively use the ternary and other JavaScript operators
ternary (conditional) operator
other operators: typeof, instanceof, and delete
JSE-40-01 3.4 – Understand and implement operator precedence
precedence and associativity of basic operators
using brackets to force a specific order of operations (grouping)
JSE-40-01 3.5 – Implement the mechanism for interacting with the user
dialog boxes: alert, confirm, prompt
actions based on user decisions
Objectives covered by the block (6 exam items)
JSE-40-01 4.1 – Implement the decision-making mechanism and organize the control flow with the if instruction
conditional statements: if, if-else
multiple conditional statements
nesting conditional statements
JSE-40-01 4.2 – Implement the decision-making mechanism and organize the control flow with the switch instruction
conditional statement: switch-case
JSE-40-01 4.3 – Implement the decision-making mechanism and organize the control flow with the do-while and while loops, and the break and continue instructions
repeating a code fragment in a loop
iterations
conditions that (don’t) depend on the number of iterations
basic statements related to loops: while, do … while, break, case
JSE-40-01 4.4 – Implement the decision-making mechanism and organize the control flow with the for statement
repeating a code fragment using the for statement
JSE-40-01 4.5 – Implement the decision-making mechanism and organize the control flow with the for-in statement
using the for ... in statement for enumerating object keys
JSE-40-01 4.6 – Implement the decision-making mechanism and organize the control flow with the for-of statement
using the for ... of statement for traversing arrays
Objectives covered by the block (6 exam items)
JSE-40-01 5.1 – Organize and decompose the code using functions
declaring, calling, and passing arguments
returning function results
JSE-40-01 5.2 – Organize and implement interactions between the function and its environment
parameters
local variables
shadowing
JSE-40-01 5.3 – Apply function expressions and functions as first-class members in code
storing a function in a variable
passing a function as a parameter
named and anonymous function expressions
JSE-40-01 5.4 – Understand and implement the concept of recursion
using recursion to solve simple computational problems
JSE-40-01 5.5 – Explain and implement callback functions
synchronous callbacks
asynchronous callbacks
setTimeout, setInterval
JSE-40-01 5.6 – Explain and implement arrow functions
notation of function expressions in the arrow form
passing arguments
shortened form for a function body with one statement
Objectives covered by the block (4 exam items)
JSE-40-01 6.1 – Classify and distinguish between different programming errors
error classification: syntax, semantics, and logical errors
runtime errors
JSE-40-01 6.2 – Compare and contrast different JavaScript errors and exceptions
basic types of JavaScript errors: Syntax Error, ReferenceError, TypeError, RangeError
JSE-40-01 6.3 – Understand, examine, and design an exception-handling mechanism in JavaScript
handling: try ... catch ... finally
throwing custom exceptions: throw
JSE-40-01 6.4 – Use different debugging and troubleshooting techniques