Desenvolvimento em JavaScript - curso 39.500 rublos. do IBS Training Center, treinamento de 40 horas, data 26 de novembro de 2023.
Miscelânea / / November 28, 2023
Assuntos abordados:
1. Linguagem JavaScript:
Versões e implementações de JavaScript;
Áreas de aplicação do JavaScript (navegador, servidor, desenvolvimento mobile);
Tipos de dados: String, Number, Boolean (o conceito de verdadeiro e falso);
Operadores, precedência de operadores;
Declaração de variáveis: var, const, let;
Loops: enquanto, para, para… em, para… de;
Trabalhando com números e strings;
Valores nulos e indefinidos: diferenças e finalidades de aplicação;
Trabalhando com o console;
Exceções em JavaScript.
2. JSON, objetos e matrizes:
Formato JSON, exemplos;
JSON.parse e stringify;
Objetos, trabalhando com a classe Object;
Criação de objetos (usando o literal {}, o operador new, o método create);
Herança prototípica, referência __proto__;
Getters e setters;
O operador in e hasOwnProperty, o conceito de propriedades enumeráveis;
método toString(), chamando e substituindo o método;
método valueOf(), chamando e substituindo o método;
Criando arrays: literais e new Array();
Alteração automática do comprimento do array;
Obtendo e definindo o comprimento do array, truncando o array;
Usando os métodos join() e concat();
Usando o método sort, definindo a ordem de classificação do array;
Usando os métodos slice e splice;
Usando métodos push, pop, shift, unshift: criando uma pilha ou fila.
3.Trabalhando com datas e strings:
Usando o novo construtor Date();
Compreender a representação computacional da data como hora com Epoch;
Usando getTime() e setTime();
Análise de representação de string de datas;
Opções para criação de strings em JS: uso de aspas simples e duplas;
Interpolação de strings (string entre apóstrofos);
Escapando caracteres especiais em uma string;
Concatenação de strings, conversão para maiúsculas e minúsculas;
Encontrar uma substring usando indexOf() e lastIndexOf();
Selecionando uma substring usando substring() e substr()
Usando os métodos include, endsWith, startWith.
4. Usando JavaScript no navegador: modelo DOM:
Gerenciar a janela do navegador, documento, eventos e estilo (estilos CSS);
O objeto janela e seus usos;
Conectando código JavaScript a uma página HTML;
A ordem de execução dos scripts na página;
Cache de scripts, servidores CDN, recarga forçada de JavaScript;
Trabalhar com links, conectando JavaScript a links;
O evento onload e seu uso;
Ataques XSS no site;
Trabalhando com o DOM: usando window, document, childNodes;
Manipular um documento usando o DOM: criar, excluir, mover elementos;
Usando getElementById(), getElementsByTagName(), getElementsByClassName() para encontrar elementos na página;
Trabalhando com métodos e propriedades de HTMLDocument e HTMLElement.
5. Trabalhando com eventos no navegador:
O conceito de programação de eventos;
Manipuladores e ouvintes de eventos;
Conectando manipuladores usando addEventListener();
Propriedades e métodos da classe Event;
Propagação de eventos para cima (borbulhamento) e para baixo (captura);
Pare a propagação;
Eventos de janela;
Eventos de mouse e teclado, propriedades de eventos especiais;
Eventos de formulário;
6. Trabalhando com CSS e gerenciando estilos:
Padrão CSS, propriedades CSS básicas;
Estilos gerais e estilos de elementos individuais;
Estilos em cascata;
Seletores CSS;
Modificando CSS com JavaScript;
Preenchimento: margem, preenchimento, borda;
Controlar a visibilidade dos elementos: visibilidade e exibição;
Posicionamento dos elementos: absoluto, fixo, relativo, configuração superior e esquerda;
Unidades de medida px, pt e outras;
Estouro de elemento e controle através da propriedade overflow;
Gerenciando camadas de documentos: propriedade zIndex;
Animação, movimentação de elementos;
Trabalhando com classes, definindo className;
Trabalhar com transparência e transições;
método querySelectorAll().
7. Trabalhando com módulos em JavaScript, gerenciador de pacotes NPM, construtor Webpack:
Razões para usar módulos;
Exportar do módulo;
Importar do módulo;
Reexportar;
Trabalhando com NPM, arquivo package.json;
pasta node_modules, baixando pacotes usando NPM;
Instalação global e local de pacotes;
Usando webpack para construir um projeto;
Carregadores CSS e TypeScript;
Configuração webpack.config.js;
Criação de pacotes, compactação;
plug-ins de webpack;
Utilização de sistemas antigos de modularidade – CommonJS e AMD;
Usando CommonsChunkPlugin, vários pontos de entrada;
Módulos HMR com troca a quente.
8. Classes e herança em JavaScript:
Herança de protótipo, referência __proto__;
Protótipo de objeto;
Usando instância;
Classe de palavras-chave, criação de classes;
Palavra-chave super;
Usando o método Object.assign();
Usando o método Object.defineProperty();
Getters e setters;
Operador Spread para trabalhar com objetos e arrays;
Desestruturando um array e um objeto.
9. Programação Funcional em JavaScript:
Funções como variáveis;
Argumentos de matriz;
Classe de função, métodos call() e apply();
O método bind(), definindo este e alguns dos parâmetros usando bind;
Fechamentos em JavaScript;
Encapsular valores usando fechamentos;
Criando uma função através do construtor Function: construindo uma string;
Funções de seta, exemplos de sua aplicação;
Manipulação funcional de array: find, findIndex, filter;
Exemplos de uso de mapa/filtro/redução para processar dados em uma matriz.
10. Imutabilidade, teste, padrão MVC:
O conceito de imutabilidade, suas vantagens;
Métodos mutáveis e imutáveis para alteração de objetos e arrays;
Conceito e vantagens do Virtual DOM;
Testando funções imutáveis, usando Jest;
Memoização, suas vantagens;
Erros básicos e recomendações ao usar programação funcional;
Padrão MVC, criação de interface de usuário;
Visão geral das principais bibliotecas para desenvolvimento de interfaces: Angular, React, Vue.
11. Assincronia em JavaScript. Promessas:
O conceito e a necessidade da assincronia;
Trabalhando com setTimeout, setInterval, clearTimeout;
Funções de retorno de chamada (retornos de chamada);
Perder isso ao trabalhar com uma função de retorno de chamada. Soluções (usando funções bind, arrow, etc.);
O conceito de promessas, retornando uma Promise de uma função assíncrona;
Método Promise.all(), sua aplicação;
sintaxe assíncrona/aguardada, casos de uso, limitações;
Tratamento de situações de emergência: rejeição de promessas, tratamento de exceções para chamadas assíncronas.
12. Trabalhando com o servidor. Protocolo HTTP. Serviços REST:
Protocolo HTTP;
Cabeçalhos e métodos HTTP (GET, POST, PUT, DELETE, outros), transferência de dados;
Servidores HTTP (visão geral);
Códigos de resposta do servidor HTTP;
Utilização de formulários para envio de dados;
Transferência de dados para o servidor usando AJAX;
Arquitetura REST: vantagens e funcionalidades;
Implementação de CRUD (operações Criar/Leitura/Atualizar/Excluir) ao trabalhar com REST;
Usando a função fetch() para receber e enviar dados;
Documentando serviços REST usando Swagger;
Conceito HATEOAS, aplicação;
13. Biblioteca AXIOS. Protocolo WebSocket:
Comparação da biblioteca Axios de alto nível e o uso de fetch() de baixo nível;
Solicitações GET e POST no Axios;
Usando async/await com Axios;
Tratamento de erros ao usar Axios;
Cancelando uma solicitação usando Axios;
Protocolo WebSocket;
Exemplos de uso de WebSocket, comparação com HTTP;
Animação HTML;
Observação
Os materiais do curso são apresentados em inglês.