📜  AngularJS面试问答

📅  最后修改于: 2021-05-13 18:45:33             🧑  作者: Mango

  1. 什么是AngularJS,是谁创建的?
    AngularJs是一个Javascript开源前端框架,主要用于开发单页Web应用程序(SPA)。它是一个不断发展壮大的框架,为开发Web应用程序提供了更好的方法。它将静态HTML更改为动态HTML。它具有动态绑定和依赖注入之类的功能,因此无需编写其他代码.AngularJs迅速增长,由于这个原因,我们有不同版本的AngularJs,最新的稳定版本为1.7.7。同样重要的是要注意Angular与AngularJs不同。这是一个开源项目,任何人都可以自由使用和更改。它使用指令扩展HTML属性,并且数据与HTML绑定。

    AngularJs最初由Misko heveryAdam abrons于2008-2009年开发,现在由Google维护。

  2. AngularJS的功能是什么?
    AngularJS有很多功能,例如MVC框架,独特的AngularJS路由器,带有HTML的用户界面,指令,范围,数据绑定,依赖注入,兼容性,避免繁琐的工作和高性能。
  3. 解释AngularJS中的作用域和数据绑定是什么?
    范围: AngularJS中的范围是HTML视图和JavaScript控制器的绑定部分。当您将属性添加到JavaScript控制器中的作用域对象中时,只有HTML视图才能访问这些属性。 AngularJS中有两种类型的Scope。

    数据绑定: Angular提供了数据绑定功能,该函数可以帮助我们几乎实时反映用户提供的输入,即它可以在模型和视图之间建立连接。

  4. AngularJs中有几种类型的数据绑定?
    AngularJS事件绑定属性绑定双向绑定插值绑定有四种数据绑定
  5. 解释单向绑定和双向绑定之间的区别。
    属性绑定:类似于Java,在这种情况下,父类中定义的变量可以由作为模板的子类继承。插值和属性绑定之间的唯一区别是,在使用插值时,我们不应在变量中存储非字符串值。因此,除了使用属性绑定之外,如果我们必须存储布尔型或其他数据类型。

    插值绑定:使用角插值以双花括号语法在相应的视图模板中显示组件属性。插值用于传递组件类中提到的属性,以反映在其模板中。

  6. 解释AngularJS中的服务和表达。
    服务:服务用于创建可以共享的变量/数据,并且可以在定义该变量/数据的组件外部使用它们。
    表达式: AngularJS中的表达式用于将应用程序数据绑定到HTML。表达式由Angular解析,结果返回到写表达式的位置。
  7. 解释一下角度表达式和JavaScript表达式之间的主要区别是什么?
    AngularJS表达式可以用HTML编写,但JavaScript表达式不能,AngularJS支持过滤器,但JavaScript不支持。我们不能在AngularJs中使用条件迭代,循环和异常,但可以在JavaScript表达式中使用所有这些条件属性。
  8. 编写所有步骤以配置Angular App(ng-app)?
    步骤1:首先将创建angular.module。
    步骤2:将为该模块分配一个控制器。
    步骤3:模块将通过有角度的应用程序(ng-app)与HTML模板链接。
    步骤4: HTML模板将通过ng-controller指令与控制器链接。
  9. 使用页面加载选项时,如何初始化选择框?
    当页面上的选项加载时,您可以使用ng-init指令初始化选择框。

  10. AngularJS中的伪指令是什么,仅举几例。
    指令:指令是DOM元素上的标记,它们告诉Angular JS将指定的行为附加到该DOM元素,甚至使用其子元素转换DOM元素。简单的AngularJS允许使用称为“指令”的新属性扩展HTML。 AngularJS具有一组内置指令,这些指令为应用程序提供功能。它还定义了自己的指令。
    流行的指令是ng-appng-controllerng-bind等。
  11. 使用AngularJS有什么优势?
    AngularJS有几个优点。支持MVC模式支持两种使用AngularJS进行数据绑定的方式。它具有按定义的表单验证
    支持客户端-服务器通信和动画。
  12. AngularJS的路由功能是什么?
    当用户想要导航到应用程序中的不同页面但仍希望它是一个单页面应用程序时,将使用AngularJS中的路由。 AngularJS路由使用户可以为应用程序中的不同内容创建不同的URL。 ngRoute模块有助于访问应用程序的不同页面,而无需重新加载整个应用程序。
  13. 我们如何在AngularJS的控制器之间共享数据?
    我们必须首先创建服务。服务用于在AngularJS中的控制器之间共享数据。我们通过使用$ rootScope使用事件,$ parent,next si兄和控制器。
  14. HTML编译过程的步骤是什么?
    步骤1:使用标准的浏览器API,首先,将HTML解析为DOM
    步骤2:通过使用对$ compile()方法的调用,将对DOM进行编译。该方法遍历DOM,然后匹配指令。
    步骤3:通过调用上一步返回的链接函数,将模板与作用域链接。
  15. 什么是AngularJS中的字符串插值?
    在AngularJS中,在编译过程中,它使用插值服务匹配文本和属性,以查看它们是否包含嵌入式表达式。作为正常摘要循环的一部分,这些表达式将更新并注册为监视。
  16. AngularJS中有几种类型的指令?
    AngularJS中有以下四种指令:
    • 元素指令
    • 属性指令
    • CSS类指令
    • 注释指令
  17. 什么是喷油器?
    AngularJS中的注射器基本上是一个服务定位器。它用于调用方法和加载模块。单个AngularJS应用中只能有一个注入器。
  18. AngularJS中的工厂方法是什么?
    AngularJS工厂方法使AngularJS应用程序的开发过程更加健壮。工厂是一个简单的函数,它允许我们向创建的对象添加一些逻辑并返回创建的对象。工厂还用于以可重用代码的形式创建/返回功能,该函数可在应用程序中的任何位置使用。每当我们使用工厂创建对象时,它总是会为该对象返回一个新实例。工厂返回的对象可以与Angularjs框架的不同组件(例如控制器,服务,过滤器或指令)集成(可注入)。
  19. AngularJS中的摘要周期是多少?
    这是AngularJS中数据绑定过程中最重要的部分。它基本上比较了范围模型的旧版本和新版本。摘要周期自动触发。如果要手动触发摘要循环,则可以使用$ apply()。
  20. Angular和AngularJS有什么区别?
    Angular:它是用Microsoft的TypeScript语言编写的,它是ECMAScript 6(ES6)的超集。在Angular组件中是带有模板的指令。它使用了层次依赖注入。

    AngularJS:它是用JavaScript编写的。支持模型-视图-控制器设计。该视图处理模型中可用的信息以生成输出。它不使用依赖注入。