client side javascript l1

Events Handling

Event Phases
Know Event phases
Be able to explain difference between capturing and bubbling
Event Listeners
Be able to handle events
Be able to create custom events
Be able to trigger events (both built-in and custom)

AJAX

XMLHttpRequest
Know HTTP protocol basics
Know AJAX concept
Know how XMLHttpRequest works
Understand AJAX security policy
Be able to explain difference between AJAX request and Form submit
Be able to create AJAX request (set content type, set response type, set custom headers)
Be able to process AJAX response (parse response data)
Be able to handle AJAX errors (including error codes)
[fetch]
[$.ajax]

Cross-Domain Communication

JSONP
Know JSONP prerequisites
Be able to create JSONP request
Be able to process JSON response
Be able to explain difference between JSONP and AJAX

DOM Manipulation

Selectors
Know various types of selectors
Understand selectors impotency and specifity
Know how to find and select the certain elements in DOM
Be able to discover selectors performance issues, limitations and optimizations
Traversing
Know how to traverse DOM tree vertically (parent, childNodes)
Know how to traverse DOM tree horizontally (siblings)
Be able to discover traversing performance and optimizations
Modification
Be able to add/remove/update DOM elements
Know DOM modification performance issues and bottlenecks
Understand DOM optimizations
Live Collections

Events Basics

DOM Events
Know Event concept
Know basic Event types
Mouse / Keyboard Events
Form / Input Events

Events Propagation / Preventing

Know Event propagation cycle
Know how to stop Event propagation
Know how to prevent Event default browser behavior
Delegating
Understand Event delegating concept
Understand Event delegating benefits and drawbacks
Be able to implement Event delegating

Global object window

Location
Know browser location structure
Be able to explain client and server side navigation concept
History API (Global object window)
Know browser history concept
Be able to navigate within browser history
Be able to use history state
Be able to replace history state
Navigator
Know how to parse user agent
Know how to discover client platform, browser
Document
Screen
Cookies
Know cookie concept and limitations
Know how to work with cookies
Know cookie types and security policy

Modules

CommonJS
Know JavaScript modules concept
Know CommonJS module notation
Understand difference between module notation and implementation
Be able to use CommonJS modules in both browser and NodeJS
AMD, UMD
Know AMD notation
Know difference between CommonJS/AMD/UMD module notations
ES2015
Know ES2015 module notation

Nodes Modification

Node Properties
Node Attributes
Know how to modify DOM element properties and attributes
Understand DOM element properties / attributes connection
Data Attributes
CSS Scripting
Be able to add/toggle/remove CSS classes for DOM element
Be able to modify inline styles for DOM element
Be able to explain inline styles performance issues

Timers

[setTimeout]
[setInterval]
[clearTimeout]
[requestAnimationFrame]
Understand [requestAnimationFrame] concept
Be able to explain difference between [setTimeout] and [requestAnimationFrame]

Web Storage

LocalStorage
SessionStorage
Know web storages limitations and security policy
IndexedDB

optional

Cross-Origin Requests

Know AJAX security policy
Understand cross domain request prerequisites
Be able to handle AJAX security issues
IFrame

Events Advanced

Mobile Events
Custom Events

Modules Advanced

RequireJS
Know how to define AMD module
Know how to define AMD module dependencies
Know how to wrap CommonJS module for AMD
Be able to configure RequireJS
Be able to use RequireJS plugins
SystemJS
Know how to define SystemJS module
Know how to define SystemJS module dependencies
Know how to wrap CommonJS/AMD modules for SystemJS
Be able to configure SystemJS
Be able to use SystemJS plugins

Page Lifecycle

Parsing
Reflow
Repaint
Optimizations

Web Security

CSRF
Know CSRF attack vector
Know protection methods against CSRF attack
XSS
Know XSS attack vector
Know protection methods against XSS attack
Be able to compare CSRF and XSS attacks

WebSockets

WebSocket concept
WenSocket interface