Fala-me sobre o Event Loop em JavaScript: do que ele é composto e em que ordem são executados o código síncrono, microtarefas e macro-tarefas.
Frontend
O que é injeção de dependências no Angular e como podem ser injetadas dependências?
Já usaste os métodos call, apply e bind? Explique o seu propósito e diferenças.
Tem uma aplicação web CRM/Service Desk apenas para desktop que fica mal em dispositivos móveis. O design da versão móvel já está preparado e difere significativamente da versão desktop. Como organizaria a adaptação da aplicação para navegadores móveis?
Com que fiabilidade pode determinar se a aplicação é aberta num dispositivo móvel ou num desktop para escolher a versão adequada da interface?
O que irá renderizar o componente se o decorador especificar template: './user.component.html' em vez de templateUrl? Essa configuração é válida?
Por que é necessário DI no Angular se as dependências podem ser criadas com new ou armazenadas no estado global?
És um líder técnico de uma equipa de 3-4 desenvolvedores frontend. Apareceu um novo grande produto web de CRM ou Service Desk com backend pronto. Como vais escolher a tecnologia para a parte do frontend?
Explique o problema com o código do componente Angular acima e como corrigi-lo: ```typescript @Component({ selector: 'app-user', template: './user.component.html', stylesUrls: './user.component.scs', changeDetection: ChangeDetectionStrategy.OnPush, }) export class CmfUserComponent { users$: any; constructor() { const api = new BackendService(); this.users$ = api.getUsers(); } } ```
Se conjuntos diferentes de componentes forem usados para as versões de desktop e mobile, mas os serviços forem compartilhados, como organizar a troca entre versões?
Qual é a melhor prática de subscrever a um Observable diretamente no código do componente Angular? Quais são os riscos e alternativas?
Quão justificado é um rejeição total do NgModule em novos projetos Angular? Em que casos os módulos ainda podem ser necessários?
Fala-me sobre a palavra-chave this em JavaScript: do que depende o seu valor ao chamar uma função? Quais são as características das funções arrow?
Já usou decoradores de DI como @Optional, @Self, @SkipSelf e @Host? Explique como eles influenciam a busca por dependências na hierarquia de injetores.
Qual é a diferença entre onde uma função é declarada e onde ela é chamada, no contexto do valor de this?
Quais são as vantagens da função inject() no Angular em comparação com a injeção de dependências via construtor?
Se declarar uma função dentro de outra, a que ela terá acesso? Como isso funcionará com this numa função aninhada normal?
O que é deteção de alterações no Angular? Como as estratégias Default e OnPush diferem, e quando é que um componente com OnPush é verificado?
É permitido atribuir um Observable diretamente a um campo do componente no construtor ou na inicialização do campo? Qual é a diferença em relação a subscrever no construtor?
Em que níveis podem os serviços ser fornecidos através de providers no Angular: componente, rota, módulo, aplicação, plataforma?