Запитання щодо інтерв’ю AngularJS

Ось перелік концепцій, про які часто запитують в інтерв’ю AngularJS.

  • Що таке AngularJS?
  • Що таке контролер перегляду моделі (MVC)?
  • Двостороння прив'язка даних
  • Що таке ін’єкція залежностей і як вона працює?
  • Що таке $ scope у AngularJS?
  • Що таке $ rootScope в AngularJS?
  • Як реалізувати маршрутизацію в Angular?
  • Поясніть директиви
  • Як ми можемо створити власну директиву в Angular?
  • Поясніть різницю між службою та фабрикою
  • Поясніть послугу $ q, відстрочку та обіцянки

Приклади запитань та відповідей

Питання: Перелічіть директиви в 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-сторінка тут означає сторінку відповіді інтерфейсу користувача з сервера. Джерелом може бути ASP, ASP.NET, ASP.NET MVC, JSP тощо.

Однак односторінкова веб-програма доставляється у браузер як одна сторінка, і, як правило, не потрібно перезавантажувати сторінку, коли користувач переходить до різних частин програми. Це призводить до швидшої навігації, ефективніших мережевих передач та кращої загальної продуктивності для кінцевого користувача.

Питання: Що таке маршрутизація в AngularJS?

Відповідь: Маршрутизація є основною особливістю AngularJS. Ця функція корисна для побудови SPA (додатків на одній сторінці) з декількома видами. У 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. });

Питання: Що таке ін’єкція залежності?

Відповідь: Інжекція залежностей (DI) - це шаблон дизайну програмного забезпечення, який розглядає, як компоненти знаходять свої залежності.

Інжекторна підсистема AngularJS відповідає за створення компонентів, вирішення їх залежностей та надання їх іншим компонентам за запитом.

Запитання: Поясніть директиву ng-App.

Відповідь: Директива ng-app запускає додаток AngularJS. Він визначає кореневий елемент. Він автоматично ініціалізує або завантажує програму під час завантаження веб-сторінки, що містить програму AngularJS. Він також використовується для завантаження різних модулів AngularJS у додатках AngularJS.

Питання: Поясніть директиву ng-init

Відповідь: Директива ng-init ініціалізує дані програми AngularJS. Він використовується для додавання значень до змінних, які будуть використовуватися в додатку.

Наприклад, у наведеному нижче коді ми ініціалізували масив країн, використовуючи синтаксис JSON для визначення масиву країн.

 ... 

Питання: Як ви ділитесь даними між контролерами?

Відповідь: Створіть службу AngularJS, яка буде зберігати дані та вводити їх всередину контролерів. Користування послугою - це найчистіший, найшвидший і найпростіший спосіб тестування.

Однак є ще кілька способів реалізації обміну даними між контролерами, наприклад:

  • Використання подій
  • Використання $ parent, nextSibling, controllerAs тощо для безпосереднього доступу до контролерів
  • Використання $ rootScope для додавання даних про (не найкраща практика)

Питання: Яка різниця між директивами ng-if та ng-show / hide?

Відповідь: ng-if створить і відобразить елемент DOM лише тоді, коли його умова відповідає дійсності. Якщо умова хибна або змінюється на хибну, вона не створить і не знищить створену.

ng-show / hide завжди генерує елемент DOM, але він застосовуватиме властивість відображення CSS на основі оцінки стану.

Більше інформації про AngularJS:

  • Angular vs AngularJS
  • Найкращі підручники з Angular та AngularJS