Angular2面试题及答案 - [ AngularJS面试题及答案 ]

Angular2面试题及答案

Angular2是一个免费的基于开源组件的UI框架,由Google Web开发团队使用TypeScript(Superset of JavaScript)重写。通过阅读下面Angular2面试题和答案,有助于让您在面试过程中应付自如,也可作为测评或复习巩固Angular2知识。

1. Angular中的CLI是什么?

CLI是命令行界面(Command Line Interface)的首字母缩写,可用于创建Angular JS应用程序。使用CLI 还可以为Angular应用程序创建单元和端到端测试。

详细答案>>

2. 组件特定的钩子是什么?

以下是Angular2中几个特定于组件的钩子。 ngafterContentinit:初始化组件内容ngAfterConctentChecked:它检查外部内容的绑定。ngafterViewinit:它创建组件视图。ngAfterviewChecked:它检查组件视图的绑定。详细答案>>

3. AngularJS如何将字符串转换为百分比格式?

要将字符串转换为百分比格式,请使用百分比(percent)过滤器。

详细答案>>

4. Angular 2中的ngForTrackBy指令有什么用?

使用ngFor指令迭代Angular 2中的集合,该指令从集合中的每个项目实例化一次模板。 如果需要在集合中的某个点更改数据,则会出现问题,因为angular无法跟踪集合中的项目并且不知道添加或删除的项目。 这导致删除与数据相关联并再次创建的所有DOM元素。 如果集合很大,那么它就会变得更加复杂,因为很多DOM操作都很昂贵。 因此,为了解决这个问题,使用了一个trackBy函数,它将索引和当前项作为参数,并返回该项的唯一标识符。详细答案>>

5. Angularjs中构造函数和ngOnlnit有什么区别?

进入组件初始化过程的综合比较如下: ngonInit只是一个类中的一个方法,它在结构上与类中的任何其他方法都没有区别。 然而,构造函数是完全不同的东西。 它将在创建类的实例时调用。angular中的类构造函数用于注入依赖项,这称为构造函数注入模式。 然而,当调用ngOnInit时,它已完成创建组件DOM,通过构造函数和已处理的输入绑定注入所有必需的依赖项。构造函数是在实例化类时执行的类的默认方法。 然而,ngOnInit是由Angular2调用的生命周期钩子,表示角度已完成创建组件。ngOnInit...详细答案>>

6. Angular 2是什么?

Angular 2是一个完全复兴的基于组件的Javascript框架,其中应用程序是松散耦合组件的树。 它是angularJS的更高级版本。 它更像是一个“一体化”的框架,所以它也有助于创建一个单一的网站,而不会陷入不同的JS框架。 Angular 2是一个模块化框架,其中我们的代码被分成单独的过程,提供类似的功能,从而改进应用程序的测试,升级和维护。 它具有许多有用的功能,例如服务器端渲染,跨平台,并支持比任何其他框架更多的语言。 它是围绕组件概念构建的新打字稿框架,为更好,更宽敞的开发铺平了道路。 ...详细答案>>

7. 在Angular 2中装饰器是什么?

在Angular 2中,装饰器用作TypeScript创建的对象的类或类型的标识符。Angular 2将装饰器调用下面的类标识为类的定义,并使用类定义扩展装饰器特定属性。

详细答案>>

8. 你对模板变量有什么了解? 怎么用?

Angular 2中的模板用于实例化嵌入视图。可以通过两种方式访问模板变量。通过在元素上放置一个指令并使用模板变量标记将此嵌入视图的模板变量注入到指令的构造函数中,或者可以通过查询从组件或指令中查询模板变量。 Angular 2中的模板变量是对模板中DOM元素或指令的引用。模板变量用于访问DOM元素属性的值。它在"#"和"ref-"的帮助下声明为前缀。例如: - #myVar和ref-myVar。模板变量名称不能以这种方式重复,它可能会给出不可预测的值。引用变量...详细答案>>

9. Angular 2中的结构指令是什么?

结构指令用于以angular操纵DOM。 结构指令负责HTML布局。 通过以角度方式添加,移除或操纵LMN,它们可以塑造或重塑DOM的结构。 此结构指令在其他指令的帮助下应用于主机元素。 然后,指令执行它应该对该主机元素及其后代执行的任何操作。 结构指令可以很容易识别。 它还可以延迟组件或元素的实例化。 它还可用于美化效果或手动处理组件装载的时间。 结构指令绑定到模板。 两个最常见的结构指令是ngIf和ngFor。 结构指令中发生的过程是动态的。详细答案>>

10. ActivatedRouteRouterState的区别是什么?

以下是ActivatedRoute和RouterState之间的一些区别,参考Angular 2 - ActivatedRoute包含有关与outlet中加载的组件关联的路由的信息。 而RouterState表示编写器实际所处的状态。需要ActivatedRouteSn来遍历所有激活的路由。 然而,在导航期间,在应用重定向后,路由器会创建RouterStateSnapshot。ActivatedRouteSnapshot具有旧数据。 路由更改时,ActivateRouteSnapshot包含先前路线的...详细答案>>

11. Traceu编译器是什么?

Traceur是一个编译器,它接收ECMAScript并将其编译为在浏览器中运行的常规Javascript。 Traceur可以通过多种方式使用,例如将ES6代码键入或粘贴到read-eval-print-loop页面中,或者通过在网页中包含traceur并动态编译ES6代码内容或许多其他方式。 甚至traceur也是用ES6编写的,编译成ES5。 traceur编译器的主要目标是通知Javascript功能的设计,并允许我们以更好的方式编写代码。 如今,traceur编译器广泛用于Angular 2平...详细答案>>

12. ECMAScript是什么?

ECMAScript是脚本语言的标准。 它是Javascript的一个子集。 ActionScript,JavaScript等语言使用ECMAScript作为核心。 ECMA代表欧洲计算机制造商协会。 编码器通常使用ECMAScript在万维网上进行客户端脚本编写。 它还用于服务器应用程序和服务。 它包括结构化,动态,功能和基于原型的功能。 ECMAScript由Netscape的Brendan Eich开发。 ECMAScript由ECMA国际标准组织在ECMA-262和ECMA-402规范中标准化。...详细答案>>

13. Angular 2组件与指令的区别是什么?

除了组件之外,Angular 2中还使用了指令,它允许我们将行为附加到DOM中的元素。 Angular 2中的组件和指令之间存在某些差异。它们是: 在Angular 2中,组件是带有视图的指令,而指令是没有视图的装饰器。 组件是特定类型的指令,在整个应用程序中使用Web组件功能。 而指令是将行为附加到元素的机制。组件用于将应用程序分解为更小的组件。Directive用于设计可重复使用的组件。组件可用于定义管道。我们无法使用指令定义管道。每个DOM元素都可以存在组件。 而Directive用于向现有DO...详细答案>>

14. Observable和promise的主要区别是什么?

Observable是一种处理HTTP异步请求的更强大的方法。 然而,当异步操作完成或失败时,A promise处理单个事件。Observable就像一个流,它允许传递零个或多个事件,其中为每个事件调用回调。即使不再需要通知或其提供的结果,promises 最终也会调用成功或失败的回调。Observable在特定时间内使用多个值。 然而,Promise一次使用甚至返回一个值。Observable 可以取消。promises 无法取消。Observable支持map,filter,reduce和类似的运算...详细答案>>

15. Angular 2有哪些新功能?

Angular 2是一个包含各种功能的平台。 Angular 2中添加了一些新功能,其中包括: 通用服务器渲染 - 用于构建通用应用程序的库是一种流畅的体验。这是Angular 2的一个重要特征。移动工具包 - 它提供了构建高性能移动应用程序的所有移动工具包和技术。使用移动工具包开发的Web应用程序可以加载到任何有或没有Internet连接的设备上,这是一个很大的优势。命令行界面 - 它可以借助命令生成组件,路由,服务和管道。数据绑定 - 数据绑定已在Angular 2中得到改进。因此,无论需要绑定什...详细答案>>

16. Angular @RouteParams是什么?

RouteParams用于根据路由URL映射给定的URL,它们成为该路由的可选参数。

详细答案>>

17. Event emitter是什么?

Event emitter是在核心模块中定义的类,组件和指令可以使用它来发出自定义事件。

详细答案>>

18. AOT编译是什么?

AOT代表Ahead of Time。它是Angular在开发时将组件和模板编译为JavaScript和HTML的编译。

详细答案>>

19. Angular 2应用都需要哪个模块?

每个Angular 2应用程序都需要AppModule。

详细答案>>

20. angular-cli.json是什么?在哪里可以找到它。

angular-cli.json用于在angular2中配置项目。可以在angular2项目的根文件夹中找到它。

详细答案>>

21. Angular Modules和ES模块是否相同?

不相同。

详细答案>>

22. 如何定义angular中两个状态之间的过渡?

发生两种状态之间的转换,以便可以在由模型属性驱动的两个状态之间构建简单的动画。 过渡基本上是从当前状态导航到新状态。 在angular中,过渡是一种特定于动画的功能,用于angular动画DSL语言。 Transition声明了在满足输入值时将执行的动画步骤序列。 函数提供了转换的参数,并且每次发生状态更改时都会执行该函数。 在此,如果函数为true,则动画将运行,否则将不会执行。 这些动画过渡放置在动画触发器中。 转换取决于动画在之前状态中的状态以及它在下一个状态中的变化。 换句话说,如果定义了与旧/...详细答案>>

23. Angular 2中的管道是什么?

Angular 2中的管道用于模板中,以便将它们转换为用户友好的内容,并且可以在插值括号中读取{{release | date}},这里符号“|”表示管道。

详细答案>>

24. 如何处理Angular 2应用程序中的错误?

Angular 2应用程序提供了错误处理选项。可以通过包含React JS catch库以及稍后使用catch函数来处理Angular 2中的错误。 catch函数在添加catch库之后使用,包含指向Error处理函数的链接。并且在此错误,处理程序函数中,错误被发送到错误控制台,并且还会返回错误以继续执行。因此,每当发生错误时,它将被重定向到Web的错误控制台。详细答案>>

25. 可以自动将Angular 1代码移植到Angular 2吗?

不,目前没有任何可用的工具将Angular 1代码移植到Angular 2代码。在移植过程中,Angular 1的Angular 1代码,Angular 1指令与Angular 2组件的并行手动转换,这是因为它们是两个不同的框架,因此需要不同的方法来解决同样的问题。详细答案>>

26. Angular 2比Angular1有哪些优点?

Angular 2是Angular1的重写版本,而不是更新。 比较Angular 2和Angular 1的最佳方法是找出Angular 2中的新特性。这样我们就能够精确地找出Angular 2优于Angular1的优点。 因此,Angular 2的一些优点是 - Angular 2 Angular 1 Angular 2是一个面向移动的框架 Angular1并不是以移动基础开发的。 Angular 2是一个多功能的框架,有更多的语言选择。可以使用ES5,ES6,Typescript或D...详细答案>>

27. 在Angular 2中如何声明一个组件?

Angular 2中的组件只是始终与直接模板关联的指令。 Angular 2组件具有非常明确的生命周期。 使用Angular组件时,我们可以使用接口,这些接口允许我们在组件生命周期中的不同时间实现功能。 组件必须属于NgModule才能被其他组件或应用程序使用。 组件甚至可以通过实现各种生命周期钩子来控制其运行时行为。 组件声明: @component ({selector: 'great', template: 'hello {{name}}!'}) Class gr...详细答案>>

28. Angular 2支持的现代浏览器有哪些?

Angular支持大多数最新的浏览器,其中一些如下:

  • Google Chrome
  • Firefox
  • Edge
  • IE for versions 9-11
  • Safari
  • iOS 7.1
  • Android 4.1
  • IE Mobile
详细答案>>

29. 何时在Angular 2中使用Ngoninit和构造函数?

构造函数用于初始化类成员以及依赖注入。 Ngonlnit用于初始化工作。 创建组件时会调用这两种方法。 我们应该知道,何时以及如何使用它们非常重要。 这些用于为组件的代码提供最佳结构。 构造函数方法是构造函数类中的预定义方法,仅在实例化类时调用。 它还用于正确初始化字段。 Angular 2中的构造函数用于创建类的新实例。 Ngonlnit在实现构造函数时导入的类,以便在类中使用它。 在这种情况下使用的方法是ngOnlnit()。 此方法有助于在显示数据绑定属性并设置指令或组件输入后初始化指令或组件。详细答案>>

30. 如何在Angular 2中缓存可观察数据?

在“observable.cache”的帮助下缓存可观察数据。 我们可以使用缓存来缓存内存中的响应,然后在下一次订阅时,而不再次请求远程服务器。 此运算符用于字符串的末尾。 缓存对性能很重要,尤其是在带宽受限设备和慢速网络上。 在使用promises时应该很好地理解缓存,但是在将它转换为可观察时,它有点困难。 因此,在与observable进行交互时,我们通常会在消费者端设置订阅并对通过管道传递的值做出反应。可以通过添加publishReplay(1)和refCount轻松地向可观察对象添加缓存。详细答案>>

31. 在Angular 2的共享模块中有什么?

共享模块用于在预先加载和延迟加载的模块中导入服务。我们都知道延迟加载的模块在依赖注入树上创建自己的分支。共享模块由根应用程序注入器中的Angular注册的服务组成。为此,我们不需要在惰性模块中导入它,因为延迟加载的模块已经可以访问根定义的服务。组件,管道和指令也在共享模块中定义。导入共享模块的其他模块可以在其模板中使用它。这意味着可以在延迟加载的模块中正常导入模块。共享模块包含将在应用程序和特色模块中使用的代码。它还包含通用模板组件。 “哑组件”也应该出现在共享模块中。它通常也包含一些常见的Angula...详细答案>>

32. 解释Angular 2中延迟加载的概念?

延迟加载是用于减少启动时间的模块。使用lazy时,系统应用程序不需要一次加载所有内容。它只需要加载用户在应用程序首次加载时期望看到的内容。只有当用户导航到他们的路线时,才会加载延迟加载的模块。延迟加载可提高系统应用程序的性能。它使初始有效负载保持较小,这些较小的有效负载可以提高下载速度。它有助于降低资源成本,尤其是在移动网络上。如果用户没有访问应用程序的某个部分,他们将永远不会下载这些资源。angular延迟加载的概念要求我们以某种方式格式化应用程序。所有要延迟加载的资产都应该添加到自己的模块中。延迟加...详细答案>>

33. Angular 2中组件生命周期是什么样的?

组件生命周期挂钩概述生命周期序列和接口。 Angular管理组件的生命周期。 Angular创建它,渲染它。 它还可以创建和渲染其子项。 它还会检查其数据绑定属性何时更改。 它甚至可以在从DOM中删除之前销毁它。角度提供的生命周期钩子提供了对这些关键生命时刻的可见性以及它们发生时的行动能力。这些组件从应用程序的启动到结束,都会经历一整套流程或生命周期。 下面列出了许多生命周期钩子: ngOnChangesngOnInitngDoCheckngAfterContentInitngAfterContent...详细答案>>

34. Angular 2的关键(重要)组件有哪些?

Angular 2包含以下关键组件: Module - 用于将应用程序分解为程序代码的逻辑部分,每个代码或模块都设计为执行单个且唯一的任务。Component - 用于将模块组合在一起。Templates - 用于定义Angular JS应用程序的视图。Metadata - 用于向Angular JS应用程序添加更多数据。Service - 此组件用于开发组件,可用于在整个应用程序中共享。详细答案>>

35. Angular 2中的模板是什么?

Angular 2中的模板用于定义AngularJS应用程序的视图。

详细答案>>

36. Angular 2隐藏属性是什么?

Angular 2中的隐藏属性是一种特殊情况。 该属性更强大,用于绑定元素的任何属性。它是ngshow和nghide的最亲近的表亲。它设置显示属性display:none。详细答案>>
注: 此试题仅作为相关知识水平测试,不能作为权威试题和答案。非商业转载注明原文链接即可;商业转载需本站授权同意。