29 個最常見的 AngularJS 面試問題和答案 [適用於初學者和有經驗者]

已發表: 2020-03-13

AngularJS 是現代科技領域最流行的 Web 框架之一。 雖然最初,AngularJS 是一個 Google 項目,但後來,它變成了一個開源框架。 AngularJS 是一個客戶端 JavaScript 模型-視圖-控制器框架,主要用於構建和動態 Web 應用程序,尤其是單頁應用程序。

由於 AngularJS 完全基於 HTML 和 JavaScript,它允許您使用 HTML 作為模板語言。 它不僅將靜態 HTML 更改為動態 HTML,還通過添加內置屬性幫助擴展 HTML 的功能。 不僅如此,AngularJS 還擴展了 HTML 使用 JavaScript 創建自定義屬性的能力。 AngularJS 的最佳之處在於它的數據綁定和依賴注入功能有助於消除編寫冗餘代碼的需要。

AngularJS 的流行已經變得如此普遍,以至於業界對 AngularJS 技能的需求正在飆升。 但是,如果你想找到一份需要 AngularJS 技能的工作,你必須先通過 AngularJS 面試。 為了幫助您在 AngularJS 面試中脫穎而出,我們創建了一個完整的AngularJS 面試問題和答案列表。

開始!

頂級 AngularJS 面試問題和答案

1.什麼是AngularJS? AngularJS 的主要特點是什麼?

AngularJS 是由 Google 開發的 JavaScript 框架。 它用於創建動態和可擴展的 Web 應用程序。 它基於以 HTML 為模板語言的 MVC(模型視圖控制器)模式。 正如我們在介紹中提到的,AngularJS 在純 JavaScript 和 HTML 上運行,這意味著您無需依賴其他外部依賴項即可使用它。 AngularJS 有助於將 JavaScript 對象與 HTML UI 元素綁定。

AngularJS 的核心特性是:

  • 模板
  • 範圍
  • 控制器
  • 服務
  • 模型
  • 看法
  • 數據綁定
  • 過濾器

了解更多:Angular 7.0 – Avatar 有什麼新功能?

2.在AngularJS中定義範圍。

在 AngularJS 中,Scope 是一個應用程序模型,它充當應用程序控制器和視圖之間的粘合劑之間的鏈接。 Scope 旨在監視表達式和傳播事件。 通常,範圍以分層結構組織,複製應用程序的 DOM(文檔對像模型)結構。 它可以監視表達式並傳播事件。

3. 在 AngularJS 中定義數據綁定。

在 AngularJS 中,數據綁定是指模型和視圖組件之間的數據自動同步的過程。 數據綁定有助於簡化定義交互式應用程序的過程,而無需擔心在視圖/模板和組件之間推送或拉取數據。 有四種數據綁定形式:

  • 事件綁定
  • 屬性綁定
  • 字符串插值
  • 雙向數據綁定

4. 定義角度表達式。 Angular 表達式和 JavaScript 表達式有什麼區別?

Angular 表達式是放置在綁定中的代碼片段(很像 JavaScript 的風格),如下所示:

{{ 角度 }}

Angular 表達式有助於將應用程序數據綁定到 HTML。

JavaScript 表達式和 Angular 表達式的核心區別在於:

  • 雖然 JavaScript 表達式是針對全局窗口評估的,但 Angular 表達式是針對范圍對象評估的。
  • Angular 表達式的求值允許 null 和 undefined,但在 JavaScript 中,未定義的屬性通常會產生 TypeError 或 ReferenceError。
  • 與 JavaScript 不同,Angular 表達式不允許使用循環、條件或異常。
  • 雖然 AngularJS 支持過濾器,但 JavaScript 不支持。

5. 命名用於開發 AngularJS 應用程序的常用 IDE。

以下是 AngularJS 最常用的 IDE(集成開發環境):

  • Eclipse – 這是 Java/JavaScript 開發人員最喜歡的 IDE 之一。 它支持 AngularJS 插件。
  • Visual Studio – 這是一個 Microsoft IDE,旨在輕鬆快速地開發 Web 應用程序。
  • WebStorm——這無疑是現代 JavaScript 開發中最強大的 IDE 之一。 它允許使用 Angular CLI 輕鬆集成依賴項。
  • Aptana – 這是 Eclipse 的開源定製版本。 它配備了 Web 開發所需的最新工具和 Web 標準。
  • Sublime Text——這是一個強烈推薦用於 HTML、CSS 和 JavaScript 的 IDE。 自然地,它與 AngularJS 兼容。

另請檢查:AngularJS 是您下一個移動應用程序開發的正確選擇嗎?

6. AngularJS 中的指令是什麼?

AngularJS 中的指令只不過是帶有“ng”前綴的擴展 HTML 屬性。 AngularJS 有三個核心指令:

  • ng-app - 該指令的目的是標記應該被視為 Angular 應用程序的根元素的 HTML 元素。 雖然 Angular 對自定義屬性應用了脊柱大小寫,但它對實現它們的相應指令使用了駝峰大小寫過濾器。
  • ng-model – 該指令有助於將 HTML 控件(輸入、選擇、文本區域)的值綁定到應用程序數據。 在一個 ng-model 中,不僅視圖中反映的 Scope 會發生變化,甚至視圖中的變化也會反映在 Scope 中。
  • ng-bind – 該指令用於將模態應用程序數據綁定到 HTML 視圖。

7. AngularJS 路由的目的是什麼?

使用 AngularJS 路由允許您為 Angular 應用程序中的不同內容創建不同的 URL。 通過這樣做,您可以將 URL 添加到其特定內容的書籤中,並且添加書籤的每個此類 URL 在 AngularJS 中稱為路由。

8. 在 AngularJS 中定義字符串插值。

在 AngularJS 中,字符串插值是指一種獨特的語法,它使用 {{ }} 大括號內的模板表達式來顯示組件數據。 字符串插值通常被稱為“Moustache 語法”。 使用這種語法時,首先需要在雙花括號中包含 JavaScript 表達式(需要執行),然後將相關輸出嵌入到 HTML 代碼中。

9. 定義 AngularJS “摘要循環”。

摘要循環本質上是指AngularJS中數據綁定的過程。 在這個過程中,新舊版本的示波器模型值相互對比並進行比較。 雖然摘要循環是自動觸發的,但您也可以使用“$apply()”手動啟動該過程。

10. 單向綁定和雙向綁定有什麼區別?

單向綁定用於將模型中的數據綁定到視圖,而無需自動更新 HTML 模板或視圖。 因此,在這種方法中,您必須編寫自定義代碼來更新 HTML 模板,每次數據從模型綁定到視圖時都會進一步更新視圖。

與此相反,雙向綁定通過自動更新 HTML 模板將數據從模型綁定到視圖,反之亦然,無需您編寫任何自定義代碼。

11.定義鏈接功能。 命名鏈接函數的類型。

鏈接將指令與範圍相結合以生成實時視圖。 link 函數用於註冊 DOM 監聽器和更新 DOM。 該函數在模板被克隆後立即執行。

有兩種類型的鏈接函數:

  • 預鏈接功能 - 該功能在子元素鏈接之前執行,通常不是 DOM 轉換的安全方法。
  • 後鏈接功能 - 此功能在子元素鏈接後執行。

12. AngularJS 中的注入器是什麼?

注入器是 AngularJS 中的服務定位器。 注入器的主要目的是接收由提供者定義的對象實例、調用方法、加載模塊和實例化類型。 每個 Angular 應用程序都包含一個注入器,它可以幫助通過名稱查找對象實例。

13. 命名 ng-model 添加到 CSS 類的不同樣式形式。

ng-model 將以下樣式形式添加到 CSS 類中:

  • ng-有效
  • ng-無效
  • ng-原始
  • ng-臟

14. 定義依賴注入。 對像或函數如何訪問其依賴項?

依賴注入 (DI) 是一種軟件設計模式,用於確定代碼如何檢索其依賴關係。 它允許組件訪問它們的依賴項,而不是在組件中硬編碼它們。 為了在應用程序中加載模塊時檢索需要配置的元素,“config”操作使用 DI。

對像或函數可以通過以下方式訪問其依賴項:

  • 可以使用 new 運算符創建依賴項。
  • 可以通過引用全局變量來查找依賴項。

15.在AngularJS中命名可以作為依賴注入的組件。

在 AngularJS 中,您可以將以下組件作為依賴項相互注入:

  • 價值
  • 服務
  • 工廠
  • 持續的
  • 提供者

也可以找到這個問題的答案:為什麼要成為一名全棧開發人員?

16. HTML的編譯過程有哪些步驟?

HTML的編譯過程涉及以下步驟:

  • 首先,使用標準瀏覽器 API 將 HTML 解析為 DOM。
  • 在下一步中,對 $compile() 方法的調用用於執行 DOM 的編譯。 該方法遍歷 DOM 以匹配指令。
  • 最後一步涉及通過調用從先前步驟返回的鏈接函數將模板與範圍鏈接。

17. AngularJS 中的服務是什麼?

服務是旨在執行特定任務的 JavaScript 函數。 例如,$https: 函數用於進行 AJAX 調用以獲取服務器數據,而 $route 函數用於定義路由信息。 還有更多可以執行特定任務的此類服務。

18. 在 AngularJS 中定義指令。 命名不同類型的指令。

在 AngularJS 中,指令是在編譯過程中遇到特定 HTML 結構時觸發的行為或函數。 指令是 DOM 元素(如元素、屬性、CSS 等)上的標記。 您還可以使用它們來創建充當新的自定義小部件的自定義 HTML 標記。

四種核心類型的指令是:

  • 元素指令
  • 屬性指令
  • 評論指令
  • CSS 類指令

19. 區分 AngularJS 中的 Annotation 和 Decorator。

在 Angular 中,註解是類的唯一元數據集,它使用反射元數據庫來創建“註解”數組。 另一方面,裝飾器是用於分離類的裝飾或修改而不改變應用程序的原始源代碼的設計模式。

20. 定義控制器。

控制器是綁定到特定範圍的 JavaScript 函數。 他們的主要目標是為 HTML UI 提供數據和邏輯。 它們是 AngularJS 框架中控制數據如何從服務器流向 HTML UI 的主要參與者。 此外,控制器還具有對數據進行操作並確定需要更新哪個視圖以顯示更新的基於模型的數據的功能。

21. AngularJS 中的日誌是如何維護的?

為了維護日誌,AngularJS 中使用了 $log 服務。 $log 服務的主要目的是通過下面提到的方法幫助調試和故障排除:

  • log() - 用於在控制台中寫入日誌消息。
  • info() - 用於編寫信息消息。
  • warn() - 用於編寫警告消息。
  • error() - 用於編寫錯誤消息。
  • debug() - 用於編寫調試消息。

22. 在 AngularJS 中定義 $rootscope。 它與範圍有何不同?

在 AngularJS 中,$rootscope 和 $scope 都是通常用於從控制器共享數據以供查看的對象。 然而,兩者完全不同。 $rootscope 和 $scope 之間的主要區別在於,雖然前者在所有控制器中全局可用,但 $scope 僅在與其子控制器一起創建它的控制器中可用。

23. 列舉一些 AngularJS 支持的瀏覽器。

以下是 AngularJS 支持的一些瀏覽器:

  • 火狐瀏覽器
  • 谷歌瀏覽器
  • 微軟邊緣
  • IE手機
  • Safari (iOS)
  • 即 10,11

24. 如何在 Angular 1.x 中啟用 HTML5 模式?

要在 Angular 1.x 中啟用 HTML5 模式,您必須運行以下代碼:

angular.module('myApp', [ ])

.config(function($routeProvider, $locationProvider) {

$routeProvider

。什麼時候('/', {

templateUrl : 'partials/home.html',

控制器:主控制器

})

// 使用 HTML5 歷史 API

$locationProvider.html5Mode(true);

});

25. 命名 AngularJS 中的內置驗證器。

AngularJS 支持所有用於驗證輸入的標準 HTML5 屬性。 以下是 AngularJS 中的一些內置驗證器:

  • 最大限度
  • 必需的
  • 類型=”數字”或類型=”電子郵件”

26. 如何使用 AngularJS 進行 AJAX 調用?

您可以使用 AngularJS 中的 $https: 服務進行 AJAX 調用以從服務器讀取數據。 AngularJS 要求數據為 JSON 格式。 服務器創建一個數據庫調用來檢索所需的記錄。 數據準備好後,可以使用 $https: 服務從服務器檢索數據,如下所示:

函數 studentController($scope,$https:) {

var url = “data.txt”;

$https:.get(url).success(函數(響應){

$scope.students = 響應;

});

}

27. AngularJS 中的內部化是什麼?

在 AngularJS 中,國際化是指用於在網站上顯示特定於語言環境的信息的方法。 例如,在美國以英語顯示內容,在法國以丹麥語顯示內容的網站必鬚根據位置進行內部化。

AngularJS 為三種過濾器提供內置的國際化支持:

  • 日期
  • 數字
  • 貨幣

28. 描述 AngularJS 啟動過程的步驟。

當您在瀏覽器中加載頁面時,AngularJS 啟動過程就會啟動。涉及的步驟如下:

  • HTML 文檔文件由瀏覽器加載和評估。 然後加載 AngularJS JavaScript 文件,並創建一個全局對象。
  • 在下一步中,執行負責註冊控制器功能的 JavaScript 文件。
  • AngularJS 掃描 HTML 以查找 AngularJS 應用程序和視圖。 當它成功找到一個視圖時,它將那個特定的視圖連接到相應的控制器功能。
  • 最後,AngularJS 執行控制器功能並使用控制器填充的模型中的數據呈現視圖,並且頁面已準備好供用戶查看。

29. AngularJS 中過濾器的作用是什麼?

過濾器用於格式化表達式的值並將其顯示給用戶。 在 AngularJS 中,過濾器被添加到模板、指令、控制器和服務中。 您還可以創建自定義過濾器。 通過使用過濾器,您可以組織數據,使數據值僅在滿足特定條件時才顯示。 過濾器通過使用“|”添加到 Angular 表達式中字符後跟一個過濾器

結論

所以,這裡有 29 個最常被問到的AngularJS 面試問題和答案,它們將幫助你打破 AngularJS 的僵局。

如果您有興趣了解有關 AngularJS、全棧開發的更多信息,請查看 upGrad 和 IIIT-B 的全棧軟件開發 PG 文憑,該文憑專為在職專業人士設計,提供 500 多個小時的嚴格培訓、9 個以上的項目和任務、IIIT-B 校友身份、實用的實踐頂點項目和頂級公司的工作協助。

快樂學習!

成為全棧開發人員

升級和 IIIT-BANGALORE 的軟件開發 PG 文憑
了解更多@升級