Files
freeCodeCamp/guide/russian/javascript/angularjs-interview-questions/index.md
2019-04-10 21:41:49 +04:00

66 lines
9.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
title: Angularjs Interview Questions
localeTitle: Вопросы интервью Angularjs
---
# Вопросы интервью Angularjs
Вот список понятий, которые часто задают в интервью Angularjs.
* Что такое AngularJS?
* Что такое Модель-Представление-Контроллер (MVC)?
* Двусторонняя привязка данных
* Что такое инъекция зависимости и как она работает?
* Что такое $scope в AngularJS?
* Что такое $rootScope в AngularJS?
* Как реализовать роутинг в AngularJS?
* Объясните, что такое директивы
* Как мы можем создать собственную директиву в Angular?
* Объясните разницу между service и factory
* Объясните как работает сервис $q, deferred и promises
# Примеры вопросов и ответов
Вопрос: Перечислите Директивы в AngularJS? Ответ: ngBind, ngModel, ngClass, ngApp, ngInit, ngRepeat
Вопрос: Что такое $scope в AngularJS? Ответ: $scope в AngularJS - это объект, который относится к модели приложения. Это объект, который связывает представление (элемент DOM) с контроллером. В контроллере доступ к данным модели осуществляется через объект $scope. Как известно, AngularJS поддерживает шаблон MV \*, объект $scope становится моделью MV \*.
Вопрос: Что такое SPA (одностраничное приложение) в AngularJS? Ответ. Одностраничные приложения (SPA) - это веб-приложения, которые загружают одну страницу HTML и динамически обновляют эту страницу, когда пользователь взаимодействует с приложением. SPA используют AJAX и HTML для создания гибких веб-приложений без постоянной перезагрузки страницы. Однако это означает, что большая часть работы происходит на стороне клиента, в JavaScript. Одна страница HTML здесь означает страницу ответа UI с сервера. Источником могут быть ASP, ASP.NET, ASP.NET MVC, JSP и т. д. Однако одностраничное веб-приложение поставляется в виде одной страницы в браузере и обычно не требует перезагрузки страницы, поскольку пользователь переходит к различным частям приложения. Это обеспечивает более быструю навигацию, более эффективное использование сетевых ресурсов и лучшую общую производительность для конечного пользователя.
Вопрос: Что такое роутинг в AngularJS? Ответ. Роутинг является основной функцией в AngularJS. Эта функция полезна при создании SPA (Single Page Application) с несколькими представлениями. В приложении SPA все представления - это разные HTML-файлы, и мы используем роутинг для загрузки различных частей приложения. Это также позволяет разделить приложение логически и сделать его управляемым. Другими словами, роутинг помогает нам разделить наше приложение на логические представления и связать их с разными контроллерами.
Вопрос: Объясните, как работает директива ng-repeat. Ответ. Директива ng-repeat является одной из наиболее часто используемых и полезных в AngularJs. Она выполняет итерацию по набору элементов и создает элементы DOM. Она постоянно контролирует модель для перерисовки шаблона в ответ на изменение данных.
Вопрос: В чем разница между ng-If и ng-show / ng-hide. Ответ: директива ng-If добавляет или удаляет элемент в DOM в зависимости от условия. В то время как дирекривы ng-show / ng-hide скрывают или показывают элемент DOM при помощи классов ng-hide / ng-show.
Вопрос: Как отменить тайм-аут с помощью AngularJS? Ответ: $timeout - обертка AngularJS для window.setTimeout, вы отменяете тайм-аут, применяя функцию:
```
$timeout.cancel(function (){
// write your code.
});
```
Вопрос: Что такое инъекция зависимостей? Ответ: Dependency Injection (DI) - это шаблон разработки программного обеспечения, который касается того, как компоненты получают свои зависимости. Подсистема инжектора AngularJS отвечает за создание компонентов, разрешение их зависимостей и предоставление их другим компонентам по запросу.
Вопрос: Объясните директиву ng-App. Ответ. Директива ng-app запускает приложение AngularJS. Он определяет корневой элемент. Он автоматически инициализирует или загружает приложение, когда загружается веб-страница, содержащая приложение AngularJS. Он также используется для загрузки модулей AngularJS в приложении.
Вопрос: Объясните директиву ng-init Ответ. Директива ng-init инициализирует данные приложения AngularJS. Он используется, чтобы поместить значения в переменные, которые будут использоваться в приложении. Например: В приведенном ниже примере мы инициализировали массив стран, используя синтаксис JSON.
```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>
```
Вопрос: Как реализовать обмен данными между контроллерами? Ответ. Создайть сервис AngularJS, который будет хранить данные и предоставлять их контроллерам. Использование сервиса - самый чистый, быстрый и наиболее удобный для тестирования способ. Однако есть несколько других вариантов реализации обмена данными между контроллерами, например: - Использование событий - Использование $parent, nextSibling, controllerAs и т. д. Для прямого доступа к контроллерам - Использование $rootScope для добавления данных (не очень хорошая практика)
Вопрос: В чем разница между директивами ng-if и ng-show / hide? Ответ: ng-if будет создавать и отображать элемент DOM, когда его условие истинно, если условие ложно или изменяется на false, оно не создаст или уничтожит созданный. ng-show / hide всегда будут создавать элемент DOM, но применят к нему CSS свойства, чтобы скрыть или отобразить этот элемент.
#### Дополнительная информация:
Здесь вы можете найти другие вопросы и ответы:
* [Вопросы к интервью по AngularJS](https://www.tutorialspoint.com/angularjs/angularjs_interview_questions.htm)
* [10 вопросов и ответов на интервью по AngularJS](https://www.upwork.com/i/interview-questions/angularjs/)
* [50 самых важных вопросов для интервью по AngularJS для 100% успеха](http://www.techbeamers.com/latest-angularjs-interview-questions-answers/)