freeCodeCamp/guide/portuguese/javascript/angularjs-interview-questions/index.md

65 lines
6.1 KiB
Markdown
Raw Normal View History

---
title: Angularjs Interview Questions
localeTitle: Perguntas da entrevista de Angularjs
---
# Perguntas da entrevista de Angularjs
Aqui está uma lista dos conceitos que são freqüentemente perguntados nas entrevistas Angularjs.
* O que é o AngularJS?
* O que é o Model View Controller (MVC)?
* Ligação de dados em dois sentidos
* O que é injeção de dependência e como funciona?
* O que é o $ escopo no AngularJS?
* O que é o $ rootScope no AngularJS?
* Como implementar o roteamento em Angular?
* Explicar diretivas
* Como podemos criar uma diretiva personalizada em Angular?
* Explique a diferença entre o serviço e a fábrica
* Explicar $ q serviço, diferido e promessas
# Exemplos de Perguntas e Respostas
Pergunta: Listar as diretivas no AngularJS? Resposta: ngBind, ngModel, ngClass, ngApp, ngInit, ngRepeat
Pergunta: O que é o escopo do $ em AngularJS? Resposta: $ scope em AngularJS é um objeto que se refere a um modelo de aplicativo. É um objeto que liga a view (elemento DOM) ao controlador. No controlador, os dados do modelo são acessados pelo objeto $ scope. Como sabemos, o AngularJS suporta o padrão MV \*, o objeto $ scope torna-se o modelo do MV \*.
Pergunta: O que é o SPA (aplicativo de página única) no AngularJS? Resposta: Aplicativos de página única (SPAs) são aplicativos da Web que carregam uma única página HTML e atualizam dinamicamente essa página à medida que o usuário interage com o aplicativo. Os SPAs usam AJAX e HTML para criar aplicativos da Web fluidos e responsivos, sem recarregamentos constantes de páginas. No entanto, isso significa que grande parte do trabalho acontece no lado do cliente, em JavaScript. Uma única página HTML aqui significa a página de resposta da interface do usuário do servidor. A fonte pode ser ASP, ASP.NET, ASP.NET MVC, JSP e assim por diante. Um aplicativo da Web de página única, no entanto, é entregue como uma página para o navegador e normalmente não requer que a página seja recarregada à medida que o usuário navega para várias partes do aplicativo. Isso resulta em navegação mais rápida, transferências de rede mais eficientes e melhor desempenho geral para o usuário final.
Pergunta: O que é roteamento no AngularJS? Resposta: O roteamento é um recurso principal no AngularJS. Esse recurso é útil na criação de um SPA (Aplicativo de Página Única) com várias visualizações. No aplicativo SPA, todas as visualizações são arquivos Html diferentes e usamos o Roteamento para carregar diferentes partes do aplicativo, e é útil dividir o aplicativo logicamente e torná-lo gerenciável. Em outras palavras, o Roteamento nos ajuda a dividir nosso aplicativo em visões lógicas e vinculá-las a diferentes controladores.
Pergunta: Explique a diretiva ng-repeat. Resposta: A diretiva ng-repeat é o recurso da diretiva AngularJS mais usado e muito útil. Ele itera sobre uma coleção de itens e cria elementos DOM. Ele monitora constantemente a fonte de dados para renderizar novamente um modelo em resposta a alterações.
Pergunta: Qual é a diferença entre ng-If e ng-show / ng-hide. Resposta: A diretiva ng-If renderiza apenas o elemento DOM se a condição for verdadeira. onde a diretiva ng-show / ng-hide renderiza o elemento DOM mas muda a classe de ng-hide / ng-show para manter a visibilidade do elemento na página.
Pergunta: Como você cancela um tempo limite com o AngularJs? Resposta: $ timeout é o wrapper do AngularJs para window.setTimeout, você cancela o timeout aplicando a função:
```
$timeout.cancel(function (){
// write your code.
});
```
Pergunta: O que é a Injeção de Dependência? Resposta: A Injeção de Dependência (DI) é um padrão de design de software que lida com o modo como os componentes se apropriam de suas dependências. O subsistema do injetor AngularJS é responsável por criar componentes, resolver suas dependências e fornecê-los a outros componentes, conforme solicitado.
Pergunta: Explique a diretiva ng-App. Resposta: A diretiva ng-app inicia um aplicativo AngularJS. Define o elemento raiz. Ele inicializa ou inicializa automaticamente o aplicativo quando a página da Web que contém o aplicativo AngularJS é carregada. Também é usado para carregar vários módulos do AngularJS no aplicativo AngularJS.
Pergunta: Explique a diretiva ng-init Resposta: A diretiva ng-init inicializa os dados do aplicativo AngularJS. Ele é usado para colocar valores nas variáveis a serem usadas no aplicativo. Por exemplo: No exemplo abaixo, inicializamos uma matriz de países usando a sintaxe JSON para definir a matriz de países.
```html
<div ng-app = "" ng-init = "countries = [{locale:'en-US',name:'United States'}, {locale:'en-GB',name:'United Kingdom'}, {locale:'en-FR',name:'France'}]">
...
</div>
```
Pergunta: Como você compartilha dados entre controladores? Resposta: Crie um serviço AngularJS que irá armazenar os dados e injetá-los dentro dos controladores. Usar um serviço é a maneira mais limpa, rápida e fácil de testar. No entanto, existem outras maneiras de implementar o compartilhamento de dados entre os controladores, como: - Usando eventos - Usando $ parent, nextSibling, controllerAs, etc. para acessar diretamente os controladores - Usando o $ rootScope para adicionar os dados (não é uma boa prática)
Pergunta: Qual é a diferença entre as diretivas ng-if e ng-show / hide? Resposta: ng-if só criará e exibirá o elemento DOM quando sua condição for verdadeira, se a condição for falsa ou mudar para falso, não criará nem destruirá a criada. ng-show / hide sempre gerará o elemento DOM, mas aplicará a propriedade de exibição css com base na avaliação da condição.
#### Mais Informações:
Aqui você pode encontrar outras perguntas e respostas:
* [Perguntas da entrevista de AngularJS](https://www.tutorialspoint.com/angularjs/angularjs_interview_questions.htm)
* [10 AngularJS entrevista perguntas e respostas](https://www.upwork.com/i/interview-questions/angularjs/)
* [50 questões mais importantes da entrevista AngularJS para 100% de sucesso](http://www.techbeamers.com/latest-angularjs-interview-questions-answers/)