Development in JavaScript - course 39,500 rub. from IBS Training Center, training 40 hours, Date November 26, 2023.
Miscellaneous / / November 28, 2023
Topics covered:
1. JavaScript language:
JavaScript versions and implementations;
Areas of application of JavaScript (browser, server, mobile development);
Data types: String, Number, Boolean (the concept of truthy and falsy);
Operators, operator precedence;
Declaration of variables: var, const, let;
Loops: while, for, for … in, for …of;
Working with numbers and strings;
Null and undefined values: differences and purposes of application;
Working with the console;
Exceptions in JavaScript.
2. JSON, objects and arrays:
JSON format, examples;
JSON.parse and stringify;
Objects, working with the Object class;
Creating objects (using the literal {}, the new operator, the create method);
Prototypical inheritance, reference __proto__;
Getters and setters;
The in and hasOwnProperty operator, the concept of enumerable properties;
toString() method, calling and overriding the method;
valueOf() method, calling and overriding the method;
Creating arrays: literals and new Array();
Automatic change of array length;
Getting and setting the length of the array length, truncating the array;
Using join() and concat() methods;
Using the sort method, setting the sort order of the array;
Using the slice and splice methods;
Using push, pop, shift, unshift methods: creating a stack or queue.
3.Working with dates and strings:
Using the new Date() constructor;
Understanding the computer representation of date as time with Epoch;
Using getTime() and setTime();
Parsing string representation of dates;
Options for creating strings in JS: using single and double quotes;
String interpolation (string in apostrophes);
Escaping special characters in a string;
String concatenation, conversion to upper and lower case;
Finding a substring using indexOf() and lastIndexOf();
Selecting a substring using substring() and substr()
Using the includes, endsWith, startsWith methods.
4. Using JavaScript in the Browser: DOM Model:
Managing the browser window, document, events and styling (CSS styles);
The window object and its uses;
Connecting JavaScript code to an HTML page;
The order of execution of scripts on the page;
Script caching, CDN servers, JavaScript forced reload;
Working with links, connecting JavaScript to links;
The onload event and its use;
XSS attacks on the site;
Working with the DOM: using window, document, childNodes;
Manipulating a document using the DOM: creating, deleting, moving elements;
Using getElementById(), getElementsByTagName(), getElementsByClassName() to find elements on the page;
Working with methods and properties of HTMLDocument and HTMLElement.
5. Working with events in the browser:
The concept of event programming;
Event handlers and listeners;
Connecting handlers using addEventListener();
Properties and methods of the Event class;
Propagation of events up (bubbling) and down (capturing);
Stop the spread;
Window Events;
Mouse and keyboard events, special event properties;
Form events;
6. Working with CSS and managing styles:
CSS standard, basic CSS properties;
General styles and styles of individual elements;
Cascading styles;
CSS selectors;
Modifying CSS with JavaScript;
Padding: margin, padding, border;
Controlling the visibility of elements: visibility and display;
Positioning of elements: absolute, fixed, relative, setting top and left;
Units of measurement px, pt and others;
Element overflow and control via the overflow property;
Managing document layers: zIndex property;
Animation, movement of elements;
Working with classes, setting className;
Working with transparency and transitions;
querySelectorAll() method.
7. Working with modules in JavaScript, NPM package manager, Webpack builder:
Reasons for using modules;
Export from module;
Import from module;
Re-export;
Working with NPM, package.json file;
node_modules folder, downloading packages using NPM;
Global and local installation of packages;
Using webpack to build a project;
CSS and TypeScript loaders;
Configuration webpack.config.js;
Bundle creation, compression;
webpack plugins;
Using old modularity systems – CommonJS and AMD;
Using CommonsChunkPlugin, multiple entry points;
Hot swappable HMR modules.
8. Classes and inheritance in JavaScript:
Prototype inheritance, reference __proto__;
Object prototype;
Using instanceof;
Keyword class, creating classes;
Keyword super;
Using the Object.assign() method;
Using the Object.defineProperty() method;
Getters and setters;
Spread operator for working with objects and arrays;
Destructuring an array and an object.
9. Functional Programming in JavaScript:
Functions as variables;
Array arguments;
Function class, call() and apply() methods;
The bind() method, setting this and some of the parameters using bind;
Closures in JavaScript;
Encapsulating values using closures;
Creating a function through the Function constructor: constructing a string;
Arrow functions, examples of their application;
Functional array manipulation: find, findIndex, filter;
Examples of using map/filter/reduce to process data in an array.
10. Immutability, testing, MVC pattern:
The concept of immutability, its advantages;
Mutable and immutable methods for changing objects and arrays;
Concept and advantages of Virtual DOM;
Testing immutable functions, using Jest;
Memoization, its advantages;
Basic mistakes and recommendations when using functional programming;
MVC pattern, user interface creation;
Overview of the main libraries for interface development: Angular, React, Vue.
11. Asynchrony in JavaScript. Promises:
The concept and necessity of asynchrony;
Working with setTimeout, setInterval, clearTimeout;
Callback functions (callbacks);
Losing this when working with a callback function. Solutions (using bind, arrow functions, etc.);
The concept of promises, returning a Promise from an asynchronous function;
Promise.all() method, its application;
async/await syntax, use cases, limitations;
Handling emergency situations: Promise reject, exception handling for asynchronous calls.
12. Working with the server. HTTP protocol. REST services:
HTTP protocol;
HTTP headers and methods (GET, POST, PUT, DELETE, others), data transfer;
HTTP servers (overview);
HTTP server response codes;
Using forms to submit data;
Transferring data to the server using AJAX;
REST architecture: advantages and features;
Implementation of CRUD (Create/Read/Update/Delete operations) when working with REST;
Using the fetch() function to receive and send data;
Documenting REST services using Swagger;
HATEOAS concept, application;
13. AXIOS Library. WebSocket Protocol:
Comparison of the high-level Axios library and the use of low-level fetch();
GET and POST requests in Axios;
Using async/await with Axios;
Error handling when using Axios;
Canceling a request using Axios;
WebSocket protocol;
Examples of using WebSocket, comparison with HTTP;
HTML animation;
Note
Course materials are presented in English.